zoukankan      html  css  js  c++  java
  • jLink V8调试exynos 4412 u-boot的几点补充

    /**
    ******************************************************************************
    * @author    Maoxiao Hu
    * @version   V1.0.0
    * @date       Dec-2014
    ******************************************************************************
    * < COPYRIGHT 2014 ISE of SHANDONG UNIVERSITY >
    *******************************************************************************
    **/
     
    上接博客《使用eclipse与jLink V8调试exynos 4412 u-boot》,以下简称《博客1》
     
    提前声明:经过本人亲自测试与修改,用JLink是完全可以实现uboot调试的。
     
    《博客1》中初步实现了调试环境的搭建,但是经过实验,出现的问题很多:
    1、没有考虑eMMC中代码/数据完全被破坏,无法启动的情况。
    2、如果只使用三星提供的BL1烧写到TF卡上启动,JLink无法探测到CPU。
    3、eclipse自动匹配汇编/源码错误,造成无法识读。
     
    据分析原因或解决方法如下:
    1、eMMC中数据/源码被完全破坏,需要从TF/SD卡启动,制作方法参考我的另一篇博客《[小知识]如何在Mac下使用TF/SD 卡制作Exynos 4412 u-boot启动盘》
    2、CPU无法被探测的原因可能是电源管理芯片未给4412的CoreSight所在的IP核供电,JTAG口Vref引脚无参考电压输出,JLink探测不到这个参考电压无法确定CPU的高低电平范围。
    3、board文件夹下只保留samsung子文件夹,cpu文件夹下只保留arm_cortexa9子文件夹,删除其它架构文件夹即可。
     

    一、制作可以连接Jlink调试器的最小启动盘

    为了解决上面第二个问题,我们需要在制作TF卡启动盘的时候,除了烧写BL1,还需要烧写另外一段使能电源管理芯片(PMC)的BL2,但是这个BL2只是使能PMC,无其它任何代码。
    修改start.s开头部分如下:
    NewImage
    然后编译uboot,烧写BL1和CodeSign4SecureBoot文件夹下生成的checksum_bl2_14k.bin。注意此时一个可以连接JLink调试的TF卡就制作完成了,在以后整个u-boot调试阶段这个启动盘都不需要再动!
     

    二、暂时修改代码基地址

    修改board/samsung/smdkc210/config.mk

    TEXT_BASE = 0x02023400 

     

    同时取消lowlevel_init.S中的check_mem定义

    NewImage

    原因参看《Exynos4412_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf》图3-1。

    三、去掉MMU使能函数

    mmu_on

    四、eclipse里替换以下gdb初始化命令

    target remote localhost:2331
    monitor sleep 10
    monitor halt
    monitor sleep 500
    load
    break _start

    补充:如果eclipse中的源码经过调整显示仍然错误,不用管它,直接看eclipse下方的汇编区,汇编区的源码显示是一定正确的。

    NewImage

    做完以上几点后,uboot的调试就可以完美进行了,剩下的问题基本都是代码问题。

    仍然存在的问题:

    当调试到uboot中时钟初始化代码时,JLink会失去连接,估计是时钟的调整直接影响了CoreSight模块,JLink被迫与CPU断开。
    所以,时钟初始化在uboot调试阶段,需要直接放到gdb初始化命令中做,待其它部分都调试完成,再转移uboot代码当中。
    以上脚本会在以后博客中放出(以完成请参看《JLink V8初始化exynos4412脚本》)。
    附:
    1、三星BL1.bin下载 密码:7jpr
    2、制作好的checksum_bl2_14k.bin下载 密码:av3y
  • 相关阅读:
    js实现继承的5种方式
    JavaScript文件操作(1)-基础
    12 个免费在线的 Web 网站性能测试工具
    server r2 系统更新文件清理
    在C#中,Json的序列化和反序列化的几种方式总结
    ES6,新增数据结构Set的用法
    ES6中有关数组的一些新操作
    vue中mode hash 和 history的区别
    POST和GET的区别
    前端的细节
  • 原文地址:https://www.cnblogs.com/humaoxiao/p/4181078.html
Copyright © 2011-2022 走看看