linux下裸机程序下载的两种方法

 调试裸机程序来进一步的理解下arm。找到了几种裸机程序的下载方法,当然目的是裸机程序的下载和调试,你说我这方法不是纯裸机的也没有办法,的确不是纯裸机。几种方法全部通过验证是可行的。ok6410, 256M+2G

1)windows下,rvds+jtag,这个是纯裸机,不谈
2)sd卡中有了mmc.bin(可以理解为就是个uboot),通过sd卡启动
,通过USB下载,
    烧写原理:用Linux的UBOOT命令 nand 烧写程序到开发板。
    1,通过SD_Writer.exe将mmc.bin烧写到SD 卡中 ,将开发板设置到SD卡启动。(具体方法参见 飞凌 开发板linux3.0.1用户手         册.pdf)
    2,将SD卡安装到开发板中并启动,快速敲空格键让开发板停留在uboot的启动画面,如下图所示。
    3,输入dnw 50008000 下载你要烧写的程序
        此时sudo ./xdnw 打开dnw的gui,然后选择我们要下载的程序,此时就可以下载。这个下载是通过usb进行的下载。
        windows下:从dnw的usbport->Transmit->Transmit发送你要生成的led.bin文件)
    4,输入 nand erase 0 100000 擦除nandflash前1Mb空间。
    5,输入 nand write.uboot 50008000 0 100000 将内存地址50008000中的1Mb数据写到nandflash的0~100000空间中。(即前      1Mb中,uboot中输入的数据默认16进制)
    6,将开发板设置到nandflash启动,并启动开发板,你就可以看到4盏LED灯在循环亮。
         这个方法2的问题是,每次都要设置nandflash启动进行将裸机程序写到nand中,然后再通过nand进行启动,看了看板子上脆弱的开关,我担心它们扛不住。
3)这个是我要说的关键:
    nand中已经有了uboot和根文件系统,内核。这个时候,我们通过nand启动,进入uboot的启动中断(启动时按任意键),这个时候使用tftp进行下载方法如下:
tftp 50000000 led.c
然后:
go 50000000
此时已经在地址50000000处运行。

这个方法简单,高效。不用每次都将拨码开关拨来拨去了。这个方法的前提是:tftp要调好,dm9000的驱动要跑起来,当然你如果这写准备没有做好,那么还是别忙着进行其他的了,因为你在后续的linux编程时,你肯定会用到nfs的,这也是需要dm9000的,你可以说那linux下已经有了,那我无话可说。


第三种下在的方法是说,这种调试下载方法没有破坏nand中的内容,nand中可以只有uboot就可以了,这个是通过uboot的tftp和uboot的命令进行的下载,并没有用到内核和根文件系统。如果你不想调试裸机程序,可以直接就继续启动原来的系统,没有什么需要改变的。

你可能感兴趣的:(linux下裸机程序下载的两种方法)