Chinaunix首页 | 论坛 | 博客
  • 博客访问: 710664
  • 博文数量: 105
  • 博客积分: 3532
  • 博客等级: 中校
  • 技术积分: 1328
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-20 18:57
文章分类

全部博文(105)

文章存档

2015年(1)

2014年(1)

2013年(7)

2012年(14)

2011年(21)

2010年(61)

分类: 嵌入式

2010-04-21 13:03:12

  1. 安装Linux系统:有很多linux系统,例如redhat、Ubuntu……,个人比较喜欢Ubuntu,软件自动更新功能很好。一般是把linux系统安装为虚拟的,即在windows的系统里面先安装虚拟机VMware,然后在虚拟机里面安装虚拟的linux系统,这样在一台电脑上同时具备2个系统同时运行,很方便,配合VMware-tools,更是便利
  2. 学习linux基础知识:既然要使用它,最起码的了解是必须的,例如终端、常用指令、shell命令、编译程序、调试程序、安装需要的软件、Makefile文件……
  3. 安装和熟悉交叉编译器:首先了解什么是交叉编译器,为什么要安装它?交叉编译器其实就是在一个平台能编译出另一个平台能执行的机器码的编译器,对于arm来说,就是在x86的linux环境下能编译出arm能执行的二进制文件的编译器,有了它,我们才能在PC上做出arm可用的程序。制作(初学者不建议自己自作)或找到适合自己芯片架构的交叉编译器,安装在虚拟linux系统里面,一般arm的可在网上搜到,前缀一般是arm-linux-;其实linux程序的安装就是把编译好的bin文件和lib文件放在任意文件夹里面,设置系统的环境能找到他们就行。建议交叉编译器arm-linux-gcc的版本大于3.3为好。安装好交叉编译器,就有必要学会怎么使用它,了解常用指令的使用方法和用途,例如arm-linux-gcc,arm-linux-g++,arm-linux-ld……可以通过自己写一些代码来学习使用这些工具
  4. 移植bootloader:首先了解bootloader是什么,是不是可以不用它?bootloader是用来引导内核启动的代码,是最先执行的一段代码,它的主要作用是初始化板子(特别是存储器和串口),然后把内核搬移到RAM,把一些初始化的参数传递给内核,最后把执行权移交给内核,可见,没有bootloader,内核都不可能在RAM里面运行,可见bootloader是多么有必要存在。现在的bootloader还有一些特色,就是可以更新bootloader自己,可下载kernel和各种file system,虽然说这些功能可用其他工具来完成,可是bootloader里面添加了这些功能,省去了很多其他的工具,让开发变得很便捷,这些功能从某种意义上来说是非常必要的,现在常用的bootloader有u-boot
  5. 内核(kernel)移植:这才是我们在网上看到的linux-2.6.xx的东西,核心部位。现在的内核用起来很便捷,用make menuconfig指令可提供图形化的配置界面,载入适合自己芯片的配置文件(内核源代码里面有提供),进行少量配置选项的修改,就可以用make zImage指令得到经过压缩的内核镜像二进制文件,可直接下载到你的开发板里面,经过bootloader的正确引导就可以运行起来。内核的配置资料网上也很多
  6. 文件系统的移植:光有前面的步骤,不添加文件系统,系统是不能真正跑起来的,为什么要有文件系统呢?kernel只是实现多任务的一个管理工具,具体的任务在linux以文件的形式存在,就像一个工厂需要有员工才能运作一样。文件系统是由kernel操作的,不用搬移到RAM中。一般用busybox来做根文件系统,这个做好后可以用不同工具制作不同的文件系统
  7. 带触摸屏功能的Qte移植:在这之前,虽然系统运行起来了,但是我们只能通过串口来操作和查看系统的运行。必须在这个步骤之后,你才能在LCD上看到漂亮的界面。首先得保证LCD的驱动运行正常,这个在移植kernel的时候配置好Device Driver里面的相应项就可以搞定,再次是触摸屏的驱动,也可以在内核配置,也可以自己添加,这些做好了以后就可以编译ts_lib和Qte了,说明一下,ts_lib是一个触摸屏驱动和Qt实现触摸屏相应的接口程序;把相应的库文件和bin文件拷贝到开发板,设置好系统环境变量,就可以在LCD上显示自己的Qt程序了,通过触摸屏实现相应操作
  8. 编写Qt和驱动程序:现在就是大展身手的时候了,做漂亮的应用程序界面,编写自己需要的驱动程序。
  9. 一个漫长的过程,恭喜你,终于真正算得上一个嵌入式系统软件工程师了
阅读(1543) | 评论(1) | 转发(0) |
0

上一篇:arm-linux 开始篇

下一篇:工具推荐

给主人留下些什么吧!~~

xiaohengsang2017-12-07 16:44:05

C语言必备基础知识-C编程基础:http://www.embedu.org/VideoCourse/C/4952.html?2h

物联网之视频开发浅析:http://www.embedu.org/VideoCourse/wlw/2314.html?szt2h

嵌入式知识讲解:http://www.embedu.org/VideoCourse/linux/9702.html?szt2h

深入的视频课程,我刚才找页面内的客服领取了免费学习卡密,直播录播课都有。