十二、u-boot 调试--串口修改

  uboot 烧写进 norflash 进行调试

12.1 烧写后 串口不使能

  内存不能使能

  遍历代码,可以发现,在SDRAM 初始化之前,我们并没有设置时钟,但是SDRAM初始化后,我们已经开始用内存控制器了,这是不合理的,操作器件之前,我们必须把时钟给初始化。

  在源代码中,内存控制器初始化之前,并没有进行时钟的设置。加上时钟的设置。

  内存控制器的时钟 为MPLL,我们要把 MPLL 的初始化放入到 start.S 中进行初始化,取消board_init_f 执行的链表 init_sequence_f 的 board_early_init_f 函数中对MPLL 的设置即可。

  源代码的时钟的设置在 board_init_f 执行的链表 init_sequence_f 的 board_early_init_f 函数中,我们要把这些代码移动到 _start.S 中执行,在内存控制器初始化之前。

  还有就是必须关闭掉 终端的 静态显示:配置宏为CONFIG_CONSOLE_RECORD

12.1.1 修改 start.S 中的代码

  

12.1.2 注释掉 jz2440.c 对MPLL 的设置

  board_early_init_f 中

  

12.1.3 编译烧写

  

12.2 调试方法

  打开 openjtag 工具:

  

  点击 connect,然后点击 telnet,进入 telent 中运行:

  reset halt,

  

  halt

  

  读写前 4个 字节 ,与 uboot.bin 的二进制进行对比:

    

  uboot.bin 中的字节:

  

  可以看出读取的数据是正确的。

  从 step 0 开始执行,一步一步 查看数据是否正确:

  

  这样运行很慢,我们也可以将 uboot 文件进行 objdump 转码成 uboot.dis 文件,然后设置断点。

  在 board_init_f_alloc_reserve 这里设置断点,因为执行完了内存控制器初始化后,就开始执行此函数:

  uboot.dis  文件中的地址:

  

  

  我们在 0008444 那里设置一个硬件断点:

  

  然后  resume 继续执行:

  

  可以看出在 0x00008444 处暂停了,此时 内存已经初始化完了,应该是可以访问内存的。

  读内存:mdw 0x30000000

  

  写内存:mww 0x30000000 0x12345678,写完之后读取内存 mdw 0x30000000

  

12.1.2

  

 

    

 

 

  

转载于:https://www.cnblogs.com/kele-dad/p/8998992.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
U-Boot是一种开源的引导加载程序,通常用于嵌入式系统中。通过串口升级固件是指使用串口连接到设备,利用U-Boot提供的命令和功能,实现对设备固件的升级操作。 首先,我们需要通过串口连接到设备,并确认设备已经进入U-Boot环境。在U-Boot环境中,我们可以通过输入特定的命令来实现固件升级。具体的步骤如下: 1. 打开终端或串口工具,并将设备与电脑连接。确保连接的串口端口和波特率正确。 2. 启动设备并进入U-Boot环境。通常在设备加电后会显示一些启动信息,其中会包含提示如何进入U-Boot命令行界面的信息,例如按下某个键或输入特定的命令。 3. 进入U-Boot命令行界面后,我们可以通过输入特定的命令来实现固件升级。具体的命令可能会因设备而异,一般有以下几种方式: - 在U-Boot中使用TFTP协议进行固件升级。首先需要在电脑上搭建TFTP服务器,然后通过U-Boot命令从TFTP服务器下载固件并进行升级。 - 在U-Boot中使用串口进行固件升级。通过U-Boot提供的串口协议将固件文件发送到设备,并在U-Boot中执行特定的命令来进行固件升级。 - 在U-Boot中使用USB进行固件升级。连接设备的USB接口到电脑,然后通过U-Boot提供的USB协议将固件文件发送到设备并进行升级。 4. 确认固件文件的格式和正确性。在进行固件升级前,需要确保固件文件的格式和版本正确,并且与目标设备兼容。 5. 执行固件升级操作。根据具体的命令和方式,执行相关的固件升级操作。在升级过程中,确保设备电量充足,并避免中断升级过程。 通过以上步骤,我们可以通过串口连接到设备,并利用U-Boot的功能实现固件升级操作。固件升级是一项风险较高的操作,建议在操作前充分了解设备和U-Boot的相关知识,并确保备份重要数据,以避免升级失败导致设备无法正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值