在线时间2 小时
UID3478973
注册时间2018-5-14
NXP金币0
该用户从未签到
新手上路

- 积分
- 11
- 最后登录
- 2018-5-16
|

楼主 |
发表于 2018-5-16 08:59:28
|
显示全部楼层
自己来结下帖。根本原因是我们用的ddr和官网默认的不一样,导致ddr初始化失败,重定向跳转至内存后,执行代码失败。需要做ddr适配,也就是DCD配置。参见fsl-yocto-L4.9.11_1.0.0里i.MX_BSP_Porting_Guide.pdf文档的3.2.1节,使用DDR script Aid and DDR stress tools得到参数,并用ddr_stress_tester做参数校准,然后把最终得到的参数填到uboot的board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg中(根据config可知使用的是这个配置文件,也可以手动创建一个cfg文件,并修改config)。然后提示可以正常烧写了,但串口依然没输出,这个基本认为是调试串口不对,在 Mx6sabresd.c (board\freescale\mx6sabresd) 中的setup_iomux_uart函数中进行调试串口的设置,根据你的硬件设计来修改就行了。我的修改如下:
开始参数是:
static iomux_v3_cfg_t const uart1_pads[] = {
MX6_PAD_CSI0_DAT10__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
MX6_PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
};
修改后是:
static iomux_v3_cfg_t const uart1_pads[] = {
MX6_PAD_SD3_DAT7__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
MX6_PAD_SD3_DAT6__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
};
我的UART1_TXD是SD3_DAT7管脚,UART_RXD是SD3_DAT6管脚 |
评分
-
查看全部评分
|