各位大侠好,我正在做一个嵌入式的项目,我有一个方案是:
在nor flash中放入引导程序,系统一通电启动的时候便运行这个引导代码,然后通过这个引导程序将nand flash中的操作系统和资源文件加载到内存中运行。
请问这个方法可行吗???如果行的话这个引导程序要怎么写,有没有现成的或者相似的源代码啊???
我从网上搜索了一下,都说这个引导程序其实就是对nand flash的读写操作,但是我第一次做嵌入式项目,没有什么经验,也不知道怎样对nand flash进行读写操作。
知道的大侠帮帮忙啊。
如果有源代码发到我的邮箱:zfm850906@126.com
先谢谢了啊。
你说的不就是u-boot 或者vivi这些么。。。自己google uboot去
你说的这个流程就是常见的:
uboot作为代码,放到nor flash里面,uboot启动之后,从nand flash读取之前烧写的linux kernel和其他你自己的资源文件,然后uboot做完这些必要的初始化的工作后,跳转到linux kernel,把控制权交给kernel,然后就是linux的启动,运行,挂载根文件系统了。
uboot下用nand read(.yaffs)命令讲kernel img读取到内存,然后从内存启动内核。
就是常见的BootLoader的功能,代码怎么写取决于你存在Nand Flash中的数据是二进制的还是文件形式的,如果是二进制的,在NorFlash中的引导代码里只需要用基本的Nand Flash操作命令读取数据到RAM中就好了(注意坏块)。如果是文件形式存储的,在引导代码中就要支持对应的文件系统,然后用文件IO的函数读取。
楼主说的应该是UBOOT的引导程序:要真正理解这个引导过程需要从了解CPU的引导过程来入手,一POWERPC为例:当CPU上电时,有一个4K的默认空间是可以访问的,存储uboot的引导程序的rom地址也是放在这里的,至于怎么个写引导程序,则一般在操作系统中会提供一个基本的原型引导程序文件,起文件名为ROMINIT.S。