完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-5-22 15:05 编辑
场景:自己画的板子,OMAP-L138,通过硬件测试发现:NAND FLASH和网口都有问题,也就是说UBL和U-BOOT都不能烧写到NAND FLASH中,并且不能使用网络服务(TFTP、NFS)。所以考虑用UART启动方式,用“UART Boot Host Utility”这个工具把UBL(AIS格式)下载到Shared RAM空间。接着,按大家所说,应该是UBL从串口读取U-BOOT到DDR空间,并跳转到该地址运行U-BOOT。 问题:用什么工具把U-BOOT下载到DDR空间? 下面是UBL源码从串口读取U-BOOT的相关函数: static Uint32 LOCAL_recvHeaderAndData(UARTBOOT_HeaderHandle ackHeader) [ Uint32 error = E_FAIL, recvLen; // Recv ACK command error = UART_checkSequence(" ACK", TRUE); if(error != E_PASS) [ return E_FAIL; ] // Get the ACK header elements error = UART_recvHexData( 4, (Uint32 *) &(ackHeader->magicNum) ); error |= UART_recvHexData( 4, (Uint32 *) &(ackHeader->startAddr) ); error |= UART_recvHexData( 4, (Uint32 *) &(ackHeader->byteCnt) ); error |= UART_checkSequence("0000", FALSE); if(error != E_PASS) [ return E_FAIL; ] // Verify that the data size is appropriate if((ackHeader->byteCnt == 0) || (ackHeader->byteCnt > APP_IMAGE_SIZE)) [ LOCAL_sendSequence(" BADCNT"); // trailing /0 will come along return E_FAIL; ] // Verify application start address is in RAM (lower 16bit of appStartAddr also used // to hold UBL entry point if this header describes a UBL) if( (ackHeader->startAddr < DEVICE_DDR2_START_ADDR) || (ackHeader->startAddr > DEVICE_DDR2_END_ADDR) ) [ LOCAL_sendSequence("BADADDR"); // trailing /0 will come along return E_FAIL; ] // Send BEGIN command if (LOCAL_sendSequence(" BEGIN") != E_PASS) return E_FAIL; // Receive the data over UART recvLen = ackHeader->byteCnt; error = UART_recvStringN((String)(ackHeader->loadAddr), &recvLen, FALSE ); if ( (error != E_PASS) || (recvLen != ackHeader->byteCnt) ) [ DEBUG_printString("rnUART Receive Errorrn"); return E_FAIL; ] // Return DONE when all data arrives if ( LOCAL_sendSequence(" DONE") != E_PASS ) return E_FAIL; return E_PASS; ] 很明显,UBL在从串口接收数据(U-BOOT),那么是谁发给它的呢? 另外,在NAND FLASH 和 网口 都挂掉的情况下,有没有可能移植 kernel 和 文件系统呢? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
228 浏览 0 评论
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
1916 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3671 浏览 4 评论
5042 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1742 浏览 1 评论
CC3100BOOST使用CC3200lunchXL进行烧录
693浏览 2评论
741浏览 1评论
TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!
714浏览 1评论
求DLPC350 Programmer’s Guide User's Guide 中文版说明书
1211浏览 1评论
1797浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-16 01:52 , Processed in 0.678038 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号