/**

******************************************************************************
* @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开头部分如下:
然后编译uboot,烧写BL1和CodeSign4SecureBoot文件夹下生成的checksum_bl2_14k.bin。注意此时一个可以连接JLink调试的TF卡就制作完成了,在以后整个u-boot调试阶段这个启动盘都不需要再动!
 

二、暂时修改代码基地址

修改board/samsung/smdkc210/config.mk

TEXT_BASE = 0x02023400

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

原因参看《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下方的汇编区,汇编区的源码显示是一定正确的。

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

仍然存在的问题:

当调试到uboot中时钟初始化代码时,JLink会失去连接,估计是时钟的调整直接影响了CoreSight模块,JLink被迫与CPU断开。
所以,时钟初始化在uboot调试阶段,需要直接放到gdb初始化命令中做,待其它部分都调试完成,再转移uboot代码当中。
以上脚本会在以后博客中放出(以完成请参看《JLink V8初始化exynos4412脚本》)。
附:
1、三星BL1.bin下载 密码:7jpr
2、制作好的checksum_bl2_14k.bin下载 密码:av3y

jLink V8调试exynos 4412 u-boot的几点补充的更多相关文章

  1. 使用eclipse与jLink V8调试exynos 4412 u-boot

    /** ****************************************************************************** * @author    Maox ...

  2. JLink V8初始化exynos4412脚本

    /** ****************************************************************************** * @author    Maox ...

  3. 【转载】s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)

    用于arm裸机程序开发的IDE基本有 以下3个:MDK,IAR,还有ADS.具体它们的具体情况在这里我就不多说了,百度一下就明白了.由于之前开发c51,stm32时候都使用了MDK开发环境,而且MDK ...

  4. J-LINK V8固件烧录指导

    1 J-LINK V8固件烧录指导 J-LINK 是使用过程中,如果内部固件意外损坏或丢失,请参考下面操作步骤说明,重新烧录JLINK固件. 1.1 安装固件烧录软件 请ATMEL官方网址下载AT91 ...

  5. STM32 ~ J-LINK V8 修复

    1.1    安装固件烧录软件 ♦请ATMEL官方网址下载AT91-ISP下载软件. 软件下载地址:http://www.atmel.com/dyn/products/tools_card.asp?t ...

  6. 解决:j-link V8下载器灯不亮,无法正常烧写固件

    昨天j-link V8下载仿真F4正常,下午下载仿真F1后吃了个饭,然后它的灯就不亮了...按照这个例程弄了好几遍都不行,http://www.cr173.com/soft/98542.html,卡在 ...

  7. Exynos 4412

    Exynos 4412采用了三星最新的32nm HKMG工艺,是三星的第一款四核处理器 1.启动 有时间再接着写……

  8. Exynos 4412 Uboot源码解析

    原文地址:http://www.cnblogs.com/jacklu/p/6226330.html Exynos 4412 Uboot的汇编代码就不贴了,没有的可以私信我. 这是我当时阅读代码时的思维 ...

  9. JLINK V8 Keil MDK4.10 STM32

    新买的JLINK v8仿真器,第一次使用,编译环境是Keil MDK4.10,目前芯片是STM32F103x. 按照光盘的说明先安装了驱动,USB接上JLINK v8,显示驱动成功.但是在debug或 ...

随机推荐

  1. MYSQL中replace into的用法以及与inset into的区别

    在向表中插入数据时,我们经常会遇到这样的情况:1.首先判断数据是否存在:2.如果不存在,则插入:3.如果存在,则更新. 在SQL Server中可以这样处理: if not exists (selec ...

  2. async callback z

    public class StackOverflow_5979252 { [ServiceContract(Name = "IMessageCallback")] public i ...

  3. windows service的继承类ServiceBase

    https://msdn.microsoft.com/zh-cn/library/system.serviceprocess.servicebase.exitcode(v=vs.80).aspx 在停 ...

  4. 手机端的各种默认样式比如 ios的按钮变灰色

    1.ios按钮变灰色,给按钮加样式: -webkit-appearance: none; 2.有圆角话 ; } 3.去除Chrome等浏览器文本框默认发光边框 input:focus, textare ...

  5. ArcGIS上根据经纬度求地球表面两点间距离的实现

    ArcGIS上根据经纬度求地球表面两点间距离的实现 以米为单位..Net2.0,C#实现.        public static double DistanceOfTwoPoints(double ...

  6. POJ 1611

    菜鸟第一次做这种.想了好一会儿.== 首先还是初始化记忆数组,使得每一个元素的初始根节点是自己. 然后是对输入的数据进行并集.我们拿出每组元素的第一个作为根节点. 每次检测是否已经存在根节点.如果存在 ...

  7. NYOJ-2 括号配对问题 -- 数据结构_堆栈

    以前做过的,现在整理一下,主要是堆栈的使用 1.碰到左括号就入栈,碰到右括号就从栈里弹出一个和当前比配,匹配失败就肯定是NO了; 2.如果右括号弹栈的时候栈空,则说明之前没有和右括号匹配的左括号了,这 ...

  8. jquery实现跨域提交(原创)

    jquery实现跨域提交(原创)   我们在运营一个产品的时候往往会遇到这样那样的表单提交,如客户数据收集.申请加盟.意见反馈等,由此我们开发了这样一个产品,可以理解为万能型数据收集平台,不难想到,我 ...

  9. Yii 中比较常用的rules验证规则记录

    查看代码   打印 01 return array( 02   03     //必须填写 04     array('email, username, password,agree,verifyPa ...

  10. 慕课网-安卓工程师初养成-4-9 Java循环语句之 for

    来源:http://www.imooc.com/code/1425 Java 的循环结构中除了 while 和 do...while 外,还有 for 循环,三种循环可以相互替换. 语法: 执行过程: ...