完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 一只耳朵怪 于 2018-6-20 15:14 编辑
大家好: 我现在的需求是:产品通过SD烧录或升级code到Nand中,reset后从Nand启动,无OS。查看了网站资料 http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User%27s_Guide#SPI http://processors.wiki.ti.com/index.php/AM335X_StarterWare_Booting_And_Flashing#Booting_Via_NAND 根据网站资料了解,想分两步走: 一:先分别实现并了解SD和Nand的启动。SD card 启动,需要MLO和app;Nand启动,借助CCS例程NAND_Flashing_Tool将Nand_boot和code写入Nand中。 二:先从SD启动,执行app,app的功能是将Nand_boot和code写入Nand中,然后reset,设置。这样自己修改并生成app才行。 不知第二步的想法是否可行? 目前的状态是卡在第一步,生成的app无法正确执行,详细步骤如下: 1.通过CCS编译boot(eMMC)例程生成boot_ti.bin,改名为MLO 2.导入gpio例程,编译生成gpio_ti.bin,改名为app。 使用SD-Format工具将两个文件copy到SD中,reset,串口打印信息如下: CCCCCCCCStarterWare AM335x Boot Loader Copying application image from MMC/SD card to RAM ............................................ Jumping to StarterWare Application... 但是app并没有执行,因为led始终是off的。(CCS debug gpi0.out可以正常执行,LED闪烁) 通过打印的信息来看,MLO已执行且copy app完成,然后PC指针跳转,应该到DDR中执行app,不知问题出在哪里? xx_ti.bin文件是否需要特殊处理?我查看其Header.Add=0x80000_0000 没错啊! 哪位大侠指点一下,谢谢! |
|
相关推荐
7个回答
|
|
1,ccs编译的是时候应该选择MMCSD吧
2. 你是在什么平台上实验的?是自己的硬件板还是EVM? 如果是自己的硬件板,有无在bootloader的程序中修改针对板子的相关配置,如DDR3,PLL? |
|
|
|
林宇宣55 发表于 2018-6-20 07:08 谢谢Gary的回复。 1.选的是MMCSD 2.板子是Devikit8600,随板资料里的bootloader+gpio_ti.bin通过SD卡boot正常。所以bootloader里的DDR,PLL等没有问题。 我只是把gpio_ti.bin文件的来源改了,改成我自己导入staerware的例程后,重新编译所得到的binary下的xx_ti.bin文件,然后就出现了上述问题。 所以问题应该集中在xx_ti.bin文件。 想请问: xx_ti.bin文件直接通过CCS编译生成,然后拿来boot的使用方法是否正确?如若可以CCS的设置有哪些? 谢谢! |
|
|
|
cs110 发表于 2018-6-20 07:13 xx_ti.bin文件直接通过CCS编译生成,然后拿来boot的使用方法是否正确? 答:正确,将其更名为app即可。 请问starterware用的是什么版本?是其开发板里自带的吗? |
|
|
|
开发板自带的是06版的starterware。我有试过以下动作(均使用开发板自带的MLO): 1. 将06版本的gpio例程导入CCS编译后生成的xx_ti.bin文件,改名后,SD boot也不行。 2. 将自己使用的 01_01版本的gpio例程导入CCS编译后的xx_ti.bin,改名后,SD boot同样不行。 但是开发板资料中自带的gpio_ti.bin文件是可以的,所以说MLO应该没有问题。于是就开始怀疑app生成方法问题。 按说app应该是跟平台没关系的啊,不知为何CCS编译后的xx_ti.bin不行? |
|
|
|
cs110 发表于 2018-6-20 07:29 MLO可以正常启动,但是APP不行? 你有按照TI wiki的guide整个完整烧写过SD卡吗? |
|
|
|
更新内容如下: 在app添加串口打印信息,以便在boot时看到底有没有跳入执行。如下: int main() [ UARTPuts("rnStone test...rn", -1);//添加此行 GPIO1ModuleClkConfig(); GPIOModuleEnable(GPIO_INSTANCE_ADDRESS); GPIOModuleReset(GPIO_INSTANCE_ADDRESS); GPIODirModeSet(SOC_GPIO_1_REGS,26,0); //0:output;1:input while(1) [ GPIOPinWrite(GPIO_INSTANCE_ADDRESS,26,GPIO_PIN_HIGH); Delay(0x3FFFF); GPIOPinWrite(GPIO_INSTANCE_ADDRESS,26,GPIO_PIN_LOW); Delay(0x3FFFF); ] ] 然后SD boot时发现串口打印信息正确,但是后面的gpio没有动作。之前一直认为没有跳入执行,但现在来看问题出在gpio为何没有动作? |
|
|
|
问题解决。 原因在于app source code中没有gpiopinmux的mode7的设置。最早用CCS debug .out文件没有pinmux一样可以执行(此点也是个问题点),就认为app code肯定没有问题,结果方向就错了。 现在在 app中添加pinmux后,通过CCS编译生成的xx_ti.bin文件,改名后boot正常。 谢谢Gary的帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
665 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
591 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1045 浏览 1 评论
727 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
519 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
155浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
119浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
122浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
121浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 23:37 , Processed in 0.801475 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号