完善资料让更多小伙伴认识你,还能领取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 和 文件系统呢? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
666 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1047 浏览 1 评论
730 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
519 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
157浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
119浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
123浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
121浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:53 , Processed in 0.946119 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号