主题 : 单片机攻城狮能否快速入门嵌入式Linux? 复制链接 | 浏览器收藏 | 打印
我艹
级别: 新手上路
UID: 104847
精华: 0
发帖: 46
金钱: 235 两
威望: 47 点
贡献值: 0 点
综合积分: 92 分
注册时间: 2014-06-06
最后登录: 2019-06-21
楼主  发表于: 2014-10-24 21:03

 单片机攻城狮能否快速入门嵌入式Linux?

导读
作者认为。Linux包含嵌入式Linux和Linux应用(下文用Linux app代替)即Linux环境编程,本文概述昨晚的yy公开课
主要讲了linux app、嵌入式Linux与单片机编程对比。


正文
"同学们,上课了啊。人都到齐了吧,到没到齐我也不清楚",随着这句冷笑话般的"韦式"调调开场,嵌入式Linux讲座"之单片机工程师入行嵌入式Linux的那些事儿开始,因3期结束有宽裕时间,本期和往常不同,课前20分钟,老大特地列了提纲: 软件写法,烧写方法,生怕讲的不够清晰。小编看到他认真备课的表情,也是醉了,名曰:不怕你努力,就怕比你有天赋有成就的人还比你努力...

继而,老大吐露心声"刚开始我也是做单片机的,这么多年过去了,对于单片机入行嵌入式,确实有很多心得和教训"

问题来了,什么是单片机工程师? 什么是嵌入式Linux?
先与Linux app对比 ,说话间,老大用KEIL打开朋友以前的代码:单片机实现手机,代码多的打开都要好一会。内容虽多,核心仍在:一个main函数下套while,包括逻辑分析和硬件操作,咋一看,这就是个简单的OS、复杂点的单片机程序,他说,你们这些工程师,单片机写了这么久,写出这样的程序不难,那么写Linux APP呢?也可以,编写Linux APP,只需了解一些Linux概念就能上手,这个OS还涉及
硬件操作,如果会单片机硬件操作如STM32的USB、SPI、I2C,入门Linux驱动怎么样?毫无疑问:难,这亦是2期大卖的原因所在

说道Linux驱动,它包括驱动框架和硬件操作。硬件方面和单片机差不多,难的是框架,比如掌握输入子系统后,写鼠标驱动时,只需要调用API,按之前的"四步走"套路,往调用API的地方填"坑"即可,重要的是后面的调试

那么单片机和Linux app各怎么写?点灯为例,单片机,打开keil或其他IDE环境,#define一端口,在while(1)里对端口操作如等于1、0即开灯或灭灯,

若要实现按键响应,则在while里添加按键函数,while里的函数大部分需要自己实现,少部分由芯片公司帮你做好,弄成库。
Linux app要点灯咋办?打开window编辑器,先"打开led节点"和驱动工程师"沟通"后,读或写"led节点",然后套while,在这里做"点灯或灭灯" 有的还涉及多进程、进程间通讯,然后,"拖到"服务器上"make"编译,在这里也有printf,它是Linux库,linux的世界,库比单片机多得多。


关键时刻,老大喝口水,继续谈道:程序写好了,怎么烧写?单片机: 将程序编译成bin用烧写器"平铺写入FLASH",
linux呢?用工具链(相当于"烧写器")编译APP,重新制作映像-"Ghost",复制进相应的分区,等"系统启动完毕"进入Shell后,执行APP即可

"讲到这,好浪费啊,前面讲了一个多小时都没录下来,待会把前面的总结下录下来",些许叹息后,老大开始总结,主题来了:单片机工程师能快速入门嵌入式Linux吗?答案是肯定的,且听老大慢慢道来!"类比PC机,嵌入式Linux设备的bootlader、Linux内核、根文件系统相当于PC的BIOS、windows内核、c盘"。

细分开来,对于bootlader如uboot,无需太过深入,只需了解启动流程,尤其是第一和第二阶段,目标能写出毕业班式的"uboot";对于Linux内核,可先跳过,直接玩"驱动",方法是跟着2期,"步步为营",阅读分析源码;最后,根文件系统,制作这个时
按照<<嵌入式Linux应用开发完全手册>>相关章节来,绝不会错;%99的朋友成功试验过。
同时,老大还强调 "工作中,没人会教你"嵌入式Linux组成"是什么,更不会告诉你这个流程,Ta只会叫你,写啊 写出这个程序来,实现什么功能"。 "所以,吃透"嵌入式Linux组成"是什么,是单片机攻城狮入门嵌入式Linux的痛点、难点,这也是第0课之"重烧整个系统"中的系统,当理解系统启动流程,"做"系统并成功烧入后,你也算入门嵌入式Linux了",实话啊。。。