原創(chuàng)文章版權(quán)所有!如需轉(zhuǎn)載,請注明出處: http://hi.baidu.com/liushuiyue1/myhome謝謝合作?。。。?!
重新編譯uboot并下載到Nand Flash中,使用nand指令燒寫yaffs2文件到nand中如下圖所示,至此uboot已支持yaffs的燒寫。
八.支持串口xmodem協(xié)議
U-Boot默認支持的loadb命令需要配合Linux下的kermit工具來使用,loady命令通過串口ymodem協(xié)議來傳輸文件。Windows下的超級終端雖然支持ymodem,但是它的使用界面實在不友好。而SecureCRT只支持xmodem和zmodem。而上位機和開發(fā)板之間的文件傳輸又實在是一件非常重要的事,所以現(xiàn)在修改代碼以增加對xmodem的支持,即增加一個命令loadx。
1)依照loady的實現(xiàn)來編寫代碼,首先使用U_BOOT_CMD宏來增加loadx命令(在文件common/cmd_load.c文件中):
U_BOOT_CMD( loadx, 3, 0, do_load_serial_bin, "load binary file over serial line (xmodem mode)", "[ off ] [ baud ]\n" " - load binary file over serial line" " with offset 'off' and baudrate 'baud'" ); |
2)依照loady在do_load_serial_bin函數(shù)中增加對loadx命令的處理分支。
else if(strcmp(argv[0],"loadx")==0) { printf ("## Ready for binary (xmodem) download " "to 0x%08lX at %d bps...\n", offset, load_baudrate); addr = load_serial_xmodem (offset); } |
3)由于addr行調(diào)用了load_serial_xmodem函數(shù),依照load_serial_ymodem實現(xiàn)的一個函數(shù)。首先在文件開頭增加loadx_serial_xmodem函數(shù)的聲明,然后復制load_serial_ymodem函數(shù)為load_serial_xmodem,稍作修改:(1)、將局部數(shù)組ymodemBuf改名為xmodemBuf,并在后面使用到的地方統(tǒng)一修改,這只是為了與函數(shù)名稱一致,可改可不改。(2)、info.mode的值從xyzModem_ymodem改為xyzModem_xmodem。
#if defined(CONFIG_CMD_LOADB) static ulong load_serial_ymodem (ulong offset); static ulong load_serial_xmodem (ulong offset); #endif |
重新編譯,執(zhí)行loadx,然后在secureCRT的Transfer菜單下點Send Xmodem(xxx已經(jīng)放在了Upload目錄里),完成對串口xmodem協(xié)議的支持。