完善资料让更多小伙伴认识你,还能领取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 和 文件系统呢? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
851 浏览 1 评论
1081 浏览 0 评论
626 浏览 1 评论
476 浏览 1 评论
668 浏览 2 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
270浏览 29评论
1232浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
365浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
344浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
217浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-10 01:11 , Processed in 1.041883 second(s), Total 75, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191