口臭去医院挂什么科室看病| 驾驶证体检挂什么科| 脖子淋巴结肿大是什么原因| 舒肝健胃丸治什么病| 什么的小朋友填词语| 私奔是什么意思| 半身不遂是什么原因引起的| 吃什么可以让阴茎变硬| 血糖高应该吃什么水果| 暑湿是什么意思| 小龙虾什么季节| 落下帷幕什么意思| 九月初三是什么星座| 家里消毒杀菌用什么好| 广字五行属什么| 为什么夏天容易拉肚子| 嘴巴像什么| 意中人是什么意思| 双肺纹理增多增粗是什么病| 左手发麻什么原因| 王安石字什么号什么| 隐身是什么意思| 雷是什么生肖| 吃什么会自然流产| 慢性气管炎吃什么药最有效| 鱼喜欢什么颜色| 盆腔少量积液是什么意思| 为什么一直打喷嚏| 热气是什么意思| 龙男和什么生肖最配| 脑袋痛什么原因| ast什么意思| 一度电是什么概念| 蜜蜡脱毛有什么危害吗| 飞机是什么意思| 上大便出血是什么原因| 瑞士为什么这么有钱| 作息时间是什么意思| 皮肤长癣是什么原因| 嘴酸是什么原因引起| 月经过后腰酸疼是什么原因| 地主代表什么生肖| 梦见蛇咬我是什么意思| 女性肾功能不好有什么症状| 西瓜什么时候成熟| 肝癌晚期什么症状| 请佛像回家有什么讲究| 奥美拉唑和雷贝拉唑有什么区别| 属猴配什么属相最好| 水瓶女喜欢什么样的男生| im医学上是什么意思| 清水文是什么意思| 下午8点是什么时辰| 维生素d和d3有什么区别| 氟哌酸又叫什么名字| 生命线分叉代表什么| 什么时候开始胎教| 脚拇指外翻是什么原因造成的| 乌鸦长什么样| 浩浩荡荡是什么意思| 失败是成功之母是什么意思| 胸部有硬块挂什么科| 冬至是什么时候| 北面是什么档次的牌子| 耕的左边读什么| bbc是什么意思| 月牙消失了是什么原因| 刻舟求剑的求是什么意思| 20岁长白头发是什么原因造成的| 洗衣机不排水是什么原因| 粉蒸肉用什么肉好吃| 眼睛长结石是什么原因引起的| 万艾可是什么药| 怀孕一个月肚子有什么变化| 六味地黄丸什么牌子好| 两情相悦什么意思| 肺部钙化是什么意思啊| 既济是什么意思| 女人安全期是什么时候| 女性什么时候绝经| 00年是什么命| 胆结石不能吃什么| 慌张的近义词是什么| 湿气重吃什么调理| 结合是什么意思| 痛风吃什么好得快| 线雕是什么| 嘴巴里起泡是什么原因| 牛百叶是什么部位| 妈妈姐姐的女儿叫什么| 胃溃疡吃什么水果| 悬壶济世是什么意思| 溜车是什么意思| 格格不入是什么意思| 子宫肌瘤是什么原因导致的| toryburch什么牌子| 卢沟桥事变又称什么| 雪梨百合炖冰糖有什么功效| 做b超可以检查出什么| 左肩后背疼是什么原因| 做梦捡钱是什么预兆| 回复1是什么意思| 阴茎插入阴道什么感觉| 梦见别人给我介绍对象是什么意思| 甲醇是什么东西| 尿中有泡沫是什么原因| 黑枸杞有什么作用| 合什么意思| 水瓶座女生和什么星座男生最配| 吃什么可以排出霉菌| 无以言表是什么意思| 火龙果是什么季节的水果| 尿液红细胞高是什么原因| 什么是遗憾| 泡打粉是什么东西| 肺不好的人吃什么好| 高血脂会引起什么疾病| 晚上睡觉脚抽搐是什么原因| 牛子什么意思| 孕妇胃疼吃什么药| 惢是什么意思| 翌日是什么意思| 右手大拇指抖动是什么原因| 锁骨发适合什么脸型| 什么是射频| 地藏王菩萨是管什么的| 定坤丹什么时候吃最好| 小孩疝气是什么症状| 梦见已故长辈什么预兆| 什么是关税| 舌系带短有什么影响| 干湿分离什么意思| 火影忍者什么时候出的| 为什么人会死| 凉面是用什么面做的| 铁剂什么时候吃最好| 情志是什么意思| 荨麻疹吃什么药最管用| 适合什么发型| 梦见丢了一只鞋是什么意思| cu是什么| 什么粉可以代替木薯粉| 核辐射是什么| 5月31日什么星座| 血红蛋白偏低什么意思| 2002年什么年| 喜欢蓝色的女人是什么性格| 眼睛发粘是什么原因| 七年是什么婚| 六六大顺是什么生肖| 七月十六号是什么星座| 什么药降尿酸最好| 配裙子穿什么鞋子好看| 抗组胺药是什么意思| 新生儿脸上有小红点带白头是什么| 陪衬是什么意思| 美育是什么意思| 芹菜不能和什么食物一起吃| 耳鸣和脑鸣有什么区别| 跟腱炎贴什么膏药最好| 卵巢囊肿吃什么药好得最快| 上海是什么省| 梦到自己开车是什么意思| 六字真言是什么意思| 宝宝入盆有什么感觉| 中国第一长河是什么河| 什么蔬菜是温性的| 什么叫痤疮| 2月7号是什么星座| 掏耳朵咳嗽是什么原因| 叶公好龙的好是什么意思| 有机是什么意思| 摆脱是什么意思| 脚踩棉花感见于什么病| 囧是什么意思| c4是什么驾驶证| 脑梗会引起什么症状| 气血虚挂什么科| 脸上脱皮是什么原因| 什么水果补血| 大便有粘液是什么原因| 皇协军是什么意思| 11点是什么时辰| 肚子硬硬的是什么原因| 娘家人是什么意思| 治胃病吃什么药| ber什么意思| 下午六点半是什么时辰| 幼儿反复发烧是什么原因| 孕期应该吃什么| 李子有什么功效与作用| 什么是潮喷| 护士学什么专业| xxl是什么尺码| 甲状腺结节伴钙化什么意思| 舌苔厚白用什么泡水喝| 家里进蝙蝠什么预兆| mp是什么意思| 什么星座最聪明| 什么样的智齿需要拔| 大腿前侧是什么经络| tc版是什么意思| 炁怎么读什么意思| 早上起来口干口苦是什么原因| 梦见火灾预示什么| 脚后跟干裂起硬皮用什么药| 意外是什么意思| 尖货是什么意思| 前列腺增生吃什么药见效快| 排长是什么级别| 肋骨骨折吃什么食物好得快| 金风送爽是什么意思| ua是什么| c8是什么意思| 什么的鸟儿| 7.11是什么星座| 自闭症是什么人投胎| 女性尿路感染吃什么药| eb病毒阳性是什么意思| 机智如你是什么意思| 网店卖什么好| 墨镜镜片什么材质好| 减肥什么时候喝牛奶| 彩色相片什么时候出现| 口红是什么做的| 什么是什么| 乙状结肠是什么意思| 脖子下面的骨头叫什么| 什么是家庭| 吃什么皮肤白的最快| 处女膜破了有什么影响| 什么叫五福临门| 抽烟肺疼是什么原因| 地黄泡水喝有什么好处| 宫颈活检lsil是什么病| 美国为什么不打朝鲜| 巨蟹座幸运花是什么| 刘备和刘表什么关系| 育婴员是做什么的| 预防脑出血吃什么药| 什么样的房子不能住人脑筋急转弯| 高血压是什么原因造成的| 白骨精是什么妖怪| 血糖高吃什么主食好| 301医院院长什么级别| 胸腺肿瘤是什么病| 命犯桃花是什么意思| 吐白沫是什么原因| 小根蒜学名叫什么| 外阴白斑瘙痒抹什么药| 汗毛旺盛是什么原因| 毛巾发黄是什么原因| 胎儿股骨长是什么意思| 鳞状上皮细胞高是什么原因| 1月30号是什么星座| 萘是什么| 脂蛋白a高吃什么药| 海绵体是什么| 胃痉挛吃什么药好| 嫖娼是什么| 很黄很暴力是什么意思| M3什么意思| 幽门螺杆菌挂什么科| 幽门螺杆菌吃什么药最好| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? STM32 ? ARM与嵌入式Linux的入门建议

共3条 1/1 1 跳转至

ARM与嵌入式Linux的入门建议

菜鸟
2025-08-03 11:58:52     打赏
百度 因此,“七五”普法规划强调,坚持学用结合,普治并举。

也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。我一直很难理解,其实WinCE的界面比linux的界面好看多了,使用起来也很方便,更为重要的是,WinCE的开发和Windows下的开发基本一样,学起来简单得多,但是学linux或者使用linux做嵌入式的人就是远比WinCE多。在和很多工作的人交流时我了解到,他们公司从没考虑使用WinCE,因为成本高,都是使用linux进行开发。我读研究生的的实验室中也没有使用WinCE的,大都研究linux,也有少部分项目使用vxwork,但是就没有听说过使用WinCE的,原因就是开源!当然现在WinCE6.0听说也开源,不过在成本和资源上linux已经有了无人能挡的优势。与此相对应的是,越来越多的电子厂商已经开始使用linux开发产品。举个例子,Google开发的智能手机操作系统Android其实就是使用linux-2.6.23内核进行改进得到的。

第一、学习基本的裸机编程

对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方式,如果一开始就学linux系统、学移植那么只会马上就陷入一个很深的漩涡。我在刚刚开始学ARM的时候是选择ARM7(主意是当时ARM9还很贵),学ARM7的时候还是保持着学51单片机的思维,使用ADS去编程,第一个实验就是控制led.学过一段时间ARM的人都会笑这样很笨,实际上也不是,我倒是觉得有这个过程会好很多,因为无论做多复杂的系统最终都会落实到这些最底层的硬件控制,因此对这些硬件的控制有了感性的认识就好很多了学习裸机的编程的同时要好好理解这个硬件的构架、控制原理,这些我称他为理解硬件。

所谓的理解硬件就是说,理解这个硬件是怎么组织这么多资源的,这些资源又是怎么由cpu、由编程进行控制的。比如说,s3c2410中有AD转换器,有GPIO(通用IO口),还有nandflash控制器,这些东西都有一些寄存器来控制,这些寄存器都有一个地址,那么这些地址是什么意思?又怎么通过寄存器来控制这些外围设备的运转?还有,norflash内部的每一个单元在这个芯片的内存中都有一个相应的地址单元,那么这些地址与刚刚说的寄存器地址又有什么关系?他们是一样的吗?而与norflash相对应的nandflash内部的储存单元并不是线性排放的,那么s3c2410怎么将nandflash的地址映射在内存空间上进行使用?或者简单地说应该怎么用nandflash?再有,使用ADS进对arm9行编程时都需要使用到一个初始化的汇编文件,这个文件究竟有什么用?他里面的代码是什么意思?不要这个可以吗?

诸如此类都是对硬件的理解,理解了这些东西就对硬件有很深的理解了,这对以后更深一步的学习将有很大的帮助,如果跳过这一步,我相信越往后学越会觉得迷茫,越觉得这写东西深不可测。因为,你的根基没打好。  

不过先声明一下,本人并没有使用ADS对ARM9进行编程,我是学完ARM7后直接就使用ARM9学linux系统的,因此涉及使用ADS对arm9进行编程的问题我很难回答^_^,自己去研究研究吧。

对于这部分不久将提供一份教程,这个教程中的例程并不是我为我们所代理的板子写的,是我在我们学院实验室拿的,英培特为他们自己 的实验箱写的,不过很有借鉴意义,可以作为一份有价值的参考。
第二、使用linux系统进行一些基本的实验

在买一套板子的时候一般会提供一些linux的试验例程,好好做一段时间这个吧,这个过程也是很有意义的,也是为进一步的学习积累感性认识,你能想象一个从没有使用过linux系统的人能学好linux的编程吗?好好按照手册上的例程做一做里面的实验,虽然有点娃娃学走路,有点弱智,但是我想很多高手都会经历这个过程。   

在这方面我们深蓝科技目前没有计划提供相应的例程,主要是开发板的提供商会提供很丰富的例程,我们不做重复工作,只提供他们没有的、最有价值的东西给大家。
第三、研究完整的linux系统的的运行过程 

所谓完整的linux系统包括哪些部分呢? 

三部分:bootloader、linux kernel(linux内核)、rootfile(根文件系统)。

那么这3部分是怎么相互协作来构成这个系统的呢?各自有什么用呢?三者有什么联系?怎么联系?系统的执行流程又是怎么样的呢?搞清楚这个问题你对整个系统的运行就很清楚了,对于下一步制作这个linux系统就打下了另一个重要的根基。介绍这方面的资料网上可以挖掘到几吨,自己好好研究吧。
第四、开始做系统移植

上面说到完整的linux有3部分,而且你也知道了他们之间的关系和作用,那么现在你要做的便是自己动手学会制作这些东西。

当然我不可能叫你编写这些代码,这不实现。事实上这个3者都能在网下载到相应的源代码,但是这个源代码不可能下载编译后就能在你的系统上运行,需要很多的修改,直到他能运行在你的板子上,这个修改的过程就叫移植。在进行移植的过程中你要学的东西很多,要懂的相关知识也很多,等你完成了这个过程你会发现你已经算是一个初出茅庐的高手了。

在这个过程中如果你很有研究精神的话你必然会想到看源代码。很多书介绍你怎么阅读linux源代码,我不提倡无目的地去看linux源代码,用许三多的话说,这没有意义。等你在做移植的时候你觉得你必须去看源代码时再去找基本好书看看,这里我推荐一本好书倪继利的《linux内核的分析与编程》,这是一本针对linux-2.6.11内核的书,说得很深,建议先提高自己的C语言编程水平再去看。

至于每个部分的移植网上也可以找到好多吨的资料,自己研究研究吧,不过要提醒的是,很多介绍自己经验的东西都或多或少有所保留,你按照他说的去做总有一些问题,但是他不会告诉你怎么解决,这时就要靠自己,如果自己都靠不住就找我一起研究研究吧,我也不能保证能解决你的问题,因为我未必遇到过你的问题,不过我相信能给你一点建议,也许有助你解决问题。

这一步的最终目的是,从源代码的官方主页上(都是外国的,悲哀)下载标准的源代码包,然后进行修改,最终运行在板子上。

盗用阿基米德的一句话:“给我一根网线,我能将linux搞定”。
第五、研究linux驱动程序的编写

 移植系统并不是最终的目的,最终的目的是开发产品,做项目,这些都要进行驱动程序的开发。

Linux的驱动程序可以说是五花八门,linux2.4和linux2.6的编写有相当大的区别,就是同为linux2.6但是不同版本间的驱动程序也有区别,因此编写linux的驱动程序变都不是那么容易的事情,对于最新版本的驱动程序的编写甚至还没有足够的参考资料。那么我的建议就是使用、移植一个不算很新的版本内核,这样到时学驱动的编程就有足够的资料了。
第六、研究应用程序的编写

 做作品做项目除了编写驱动程序,最后还要编写应用程序。现在的趋势是图形应用程序的开发,而图形应用程序中用得最多的还是qt/e函数库。我一直就使用这个函数库来开发自己的应用程序,不过我希望你能使用国产的MiniGUI函数库。盗用周杰伦的广告词就是支持国产,支持MiniGUI”MiniGUI的编程比较相似Windows下的VC编程,比较容易上手,效果应该说是相当不错的,我曾使用过来开发arm7的程序。不过MiniGUI最大的不好就是没有像qtopia这样的图形操作平台,这大大限制了他的推广,我曾经幻想过与北京飞漫公司(就是MiniGUI的版权拥有者)合作使用MiniGUI函数库开发像qtopia这样的图形操作平台,不过由于水平有限这只能是幻想了,呵呵。

完成这一步你基本就学完了嵌入式linux的全部内容了。

还有一个小小的经验想和大家分享。我在学习嵌入式linux的过程中很少问人,客观原因是身边的老师、同学师兄都没有这方面的高手,主观原因是我不喜欢问人,喜欢自己研究解决问题。这样做有个好处,就是可以提高自己解决问题的能力,因为做这些东西总有很多问题你难以理解,别人也没有这方面的经验,也不是所有问题都有人给你答案,这时必须要自己解决问题,这样,个人的解决问题能力就显得非常关键了。因此我的建议就是一般的问题到网上搜索一下,确实找不到答案了就问问高手,还是不行了就自己去研究,不要一味去等别人帮你解决问题。

记住,问题是学习的最好机会。



工程师
2025-08-03 21:47:48     打赏
2楼

感谢分享


高工
2025-08-03 17:53:36     打赏
3楼

谢谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
月经老是提前是什么原因 七月上旬是什么时候 马来西亚人为什么会说中文 gt是什么意思 跌宕起伏什么意思
黑怕是什么意思 人肉搜索是什么 静养是什么意思 杏仁治什么病 1946年属什么生肖属相
peek是什么材料 12月12号什么星座 羁什么意思 扶她是什么意思 器质性病变是什么意思
丙氨酸氨基转移酶偏高吃什么药 反酸吃什么食物好 儿童补锌吃什么 血糖是什么引起的 眼开大财主是什么生肖
阳光像什么hcv7jop9ns1r.cn top是什么hcv7jop9ns7r.cn 心衰吃什么食物好hcv9jop3ns3r.cn 脂溢性脱发是什么意思hcv8jop8ns5r.cn 榨菜是什么菜做的hcv8jop8ns0r.cn
刚怀孕需要注意什么hcv8jop3ns9r.cn 什么样的孕妇容易翻盘hcv7jop5ns3r.cn 木辛读什么wmyky.com 什么是毛囊炎及症状图片hcv9jop4ns5r.cn 食伤泄秀是什么意思bjcbxg.com
控制线是什么意思fenrenren.com 高压150低压100吃什么药hcv8jop7ns4r.cn 北极熊是什么颜色的hcv9jop4ns7r.cn 空心菜是什么菜hcv8jop5ns8r.cn 变蛋吃多了有什么危害baiqunet.com
牙周炎挂什么科zhongyiyatai.com 宝宝消化不好吃什么调理hcv9jop1ns5r.cn 梦见火是什么意思aiwuzhiyu.com 乳果糖什么时候吃效果更佳hcv9jop5ns3r.cn 听阴天说什么hcv8jop3ns5r.cn
百度