1)你要学会根据你硬件电路及应用的需要对内核进行裁减。
2)学会安装linux系统及为了嵌入式应用而需要的相关软件,如GCC编译器,交叉编译工具,TFTP服务器等,这些东西的 *** 作和windows有挺大区别的。
3)找本linux C编程的书,学一下linux中C的编程以及编译的方法,其中Makefile的制作是其与其他系统区别较大的。
4)学会根据电路修改你的bootloader,现在一般是标准的硬件,往往可以省略了
5)其实内核的移植也是挺重要的,不过往往做核心板的人已经帮你做好了
6)尝试如何使用bootloader下载程序,包括串口,以太网等方式。
7)当然学习使用Qt做界面也是必不可少的。
8)。。。。。。。
1.这个内核路径按理说应该是目标系统(编译完成之后的Linux系统)的内核头文件的路径,是这样么?不对。编译驱动需要的是内核的导出符号表。导出符号表通常在编译好的linux源码根目录下。
那么怎么取得这个内核头文件路径呢?
下载目标板的内核源码,然后进行编译,通过后就得到了所需要的导出符号表。
在交叉编译的时候需不需要添加额外的选项,告诉交叉编译工具要生成内核头文件路径呢?
不需要,这都是Linux内核的Makefile自动完成的。
2.默认添加的文件系统是只读的
Linux启动时候的 *** 作不会受这个只读属性影响,没有写属性并不代表不能写。况且,你得的这个结论不准确。
数据丢失可能是因为数据没有同步到flash或者其他的外存设备。
3.一般来说,是不是交叉编译系统完成之后,需要交叉编译busybox(需要指定内核路径)来获取一系列的utilities呢?
通常不需要,busybox中只有少数与内核结构体相关的命令需要Linux内核源码的目录,大多数的都不需要,这个需要查看编译的输出结果进行确定。如果是只使用基本的命令,不需要Linux内核。
4、最后,想请教下,在移植好的嵌入式Linux系统上能否像PC机上的Linux一样来做开发(除了硬件资源有限,其他的开发思路应该一致)呢?
应用软件可以像pc机一样开发,硬件相关的和内核相关的有很大的不同,比如底层和硬件驱动
sys_path没用过
arm-linux-的前缀是有意义的。busybox通常使用gcc,ar,ld等编译连接工具,为了和宿主机的工具区分开,需要使用前缀进行区别。仅此而已。
linux和嵌入式系统是相互于相互交叉使用的。
嵌入式系统的定义就是软硬件可裁剪,在实际项目中,对产品的功耗、存储等要求严格,所以就会涉及将完整的Linux系统进行精简瘦身,节约存储提高效率,这就是所谓的系统移植、裁剪。此工作需要对Linux内核极其熟悉。
Linux驱动开发:嵌入式产品上面的各种外设的驱动开发,不仅要懂软件、还需要熟悉Linux内核代码、了解硬件相关知识。
嵌入式应用开发:调用Linux的系统调用接口,进行基于Linux系统的应用开发,只需要有Linux C语言知识的积累即可完成。
扩展资料
嵌入式linux的特点
1、嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式 *** 作系统的特性。
2、嵌入式Linux的特点是版权费免费购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费。
3、一些嵌入式系统设计成具有附加的功能,如存储在非易失性存储器中的程序,并且具有运行可以完成原始设计范围之外的任务的多任务 *** 作系统的能力。
参考资料来源:百度百科—嵌入式linux
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)