龙芯俱乐部开源社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1572|回复: 4

内核、内核模块、用户态程序,原来是这样吗?

[复制链接]

2

主题

8

帖子

377

积分

中级会员

Rank: 3Rank: 3

积分
377
发表于 2019-5-13 13:56:45 | 显示全部楼层 |阅读模式
之前玩过arduino,后面入了龙芯智龙V2,上网搜了许多说明,发觉点亮一个LED灯非常复杂,而且很多程序也没有搞清楚,问了一些人总是说照着教程做就好,搞得云里雾里的。教程一般是怎么说的呢?
先写内核程序,映射地址,然后跟整个linux一起编译,最后还要烧写pom芯片?整了一圈以后才是点亮一个led灯。
而arduino呢?
  1. <font face="微软雅黑">int ledPin = 10; //定义数字10 接口
  2. void setup()</font><span style="font-family: 微软雅黑;">{</span><div><div><font face="微软雅黑">    pinMode(ledPin, OUTPUT);//定义小灯接口为输出接口
  3. }
  4. void loop(){
  5.     digitalWrite(ledPin, HIGH); //点亮小灯
  6.     delay(1000); //延时1 秒
  7.     digitalWrite(ledPin, LOW); //熄灭小灯
  8.     delay(1000); // 延时1 秒
  9. }</font></div></div>
复制代码
一直想着龙芯智龙是不是也能这么便利。后面才搞懂内核、内核模块、用户态程序的关系。
发现自己的主板其实内核和GPIO内核模块都已经编译好了,只需要写用户态程序就行了。
这样的话就简单多了,所谓用户态程序,就跟操作linux文件一样,打开一个文件,往里边写一个1,它就亮了,写个0它就灭了。
而内核模块就是在不重新编译整个linux的情况下,往系统里安装驱动,而这个驱动是为了把物理地址(二进制地址)映射到用户态地址(某个类似文件的东西,存在某个目录)不知道这么理解对不对呢?


46

主题

115

帖子

4146

积分

论坛元老

Rank: 8Rank: 8

积分
4146
发表于 2019-5-13 20:20:44 | 显示全部楼层
用1C庫相對簡單一些

46

主题

115

帖子

4146

积分

论坛元老

Rank: 8Rank: 8

积分
4146
发表于 2019-5-13 22:04:49 | 显示全部楼层
簡單的gpio控制也可以跑linux的shell,這一點arduino好像比不了

2

主题

8

帖子

377

积分

中级会员

Rank: 3Rank: 3

积分
377
 楼主| 发表于 2019-5-14 11:35:51 | 显示全部楼层
cyberhero 发表于 2019-5-13 22:04
簡單的gpio控制也可以跑linux的shell,這一點arduino好像比不了

shell这门语言毕竟还是不太主流。另外i2c接口的话如何编程呢?必须把程序写死在驱动模块ko里边吗?还是说直接在用户态像读写文件一样操作就行呢?

46

主题

115

帖子

4146

积分

论坛元老

Rank: 8Rank: 8

积分
4146
发表于 2019-5-14 20:51:20 | 显示全部楼层
1c庫裡有am2320溫溼傳感器的i2c例子,c語言,改一改就可以用於其它類似場合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|龙芯俱乐部开源社区  

GMT+8, 2021-12-5 21:33 , Processed in 0.517335 second(s), 40 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表