打印

u-boot启动卡死

[复制链接]
471|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mengshenshen|  楼主 | 2016-5-19 09:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mengshenshen 于 2016-5-19 09:12 编辑

       现在问题定位到在路径u-boot-2009.08/drivers/mmc/imx_esdhc.c这个文件中,u-boot卡死在while(!(readl(®s->irqstat)&IRQSTAT_BRR));这里。
       在与官方板子对比中发现在u-boot-2009.08/drivers/mmc/imx_esdhc.c路径中函数下static int esdhc_send_cmd()中(第231行中)irqstat = readl(®s->irqstat);的函数后面添加打印信息,printf("\r\n %u",irqstat);得出官网的打印结果为33,自己做的板子的打印结果为1。在此函数之前添加打印信息printf("\r\n 0x%08x\n",regs->irqstat);得出官网和自己做的板子的打印信息都为0x00000001。
       结论:因为readl()为从内存映射的 I/O 空间读取数据,readl 从 I/O 读取 32 位数据 ( 4 字节 )。readl(为地址位)即在读取地址位0x00000001的数据的时候出了问题。即硬件地址位0x00000001的GPIO口出了问题

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

44

帖子

0

粉丝