本帖最后由 不爱说话 于 2013-3-7 09:49 编辑
上周引导uClinux kernel启动成功确实让人兴奋了一下。https://bbs.21ic.com/icview-434231-1-1.html
但是光有内核和根文件系统(只读的)还是不够的,一个linux系统至少需要一个可读写的文件系统和与外界交互的通信接口才有实用价值要不然只能作为Demo演示。这周经过努力终于突破了这两个难点,我的uClinux系统成功加载了可读写的jffs2分区(可存取文件,可执行程序),在根文件件系统里集成了rx命令实现了从PC机下载文件到jffs2分区。
1. JFFS2文件系统加载
在ST官方提供的源码包中编译uClinux只能生成一个只读的rootfs.img.bin根文件系统镜像,里面放置的是事先配置好的内容。为了增加jffs2分区需要做这几件事:
一、在linux2.6.x/drivers/mtd/map目录下找到flash的分区设置文件,然后根据自己的需要追加一些分区,最后编译;
二、使用mkfs.jffs2这个工具制作生成一个jffs2分区镜像;
三、将上面生成的image文件烧写到STM32外扩的NOR FLASH里面,启动linux后挂载就可以了;
2. rx命令
这是uClinux包中busybox下面的一个小程序,可以用它来通过串口下载文件到开发板上,有了rx就可以让STM32核心板在没有网络的环境下与PC机交换文件了。
完成了这两个重要的工作,以后使用这个平台的朋友就可以转向驱动和应用程序的开发了。
我自己写的bootloader
启动uClinux
启动完成,ls目录(jffs2挂载在tmp下)
执行hello world程序
创建文件夹rx_data
使用rx命令接收一个文件
显示接收文件的内容
uClinux启动视频:
|