TQ2440之uboot---5.jlink 在线调试 u-boot

发布者:ShimmeringMoon最新更新时间:2018-04-15 来源: eefocus关键字:TQ2440  uboot  jlink  在线调试 手机看文章 扫描二维码
随时随地手机看文章

1. 首先修改u-boot源码的两个文件 
       1.1 将u-boot根目录下的config.mk, 
       #DBGFLAGS= -g 改成:DBGFLAGS= -gdwarf-2

      1.2 将 u-boot/cpu/arm920t/config.mk 中的 
           PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) 
      改成: 
          PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu),)

附录中有解释。

改好后 make EmbedSky_config && make all, 生成 u-boot.bin 和 u-boot两个文件,其中u-boot.bin 只包含可执行的二进制代码及数据而u-boot是一个elf格式的可执行文件。u-boot: ELF 32-bit LSB executable, ARM, version 1 (ARM), statically linked, not stripped

2. 将u-boot 和 u-boot.bin 拷贝到windows目录下,例如: c:\source\

3. 连线,板子设为NorFlash启动并接通电源,

4. 配置Jlink, 最后点击 Target—>connect 出现Connect successfully.

注:JLINK相关的资料及使用方法可以在TQ2440_CD\Windows平台开发工具包\Jlink资源 中找到,

使用方法见 《TQ2440开发板使用手册V2.3_20100125.pdf》

第一次用到是在手册4.1.3节

第二次用到是在手册5.3.3节

5. 打开axd,

    5.1 Options—> Configure Interface –> Session File 中设定axd的 Run Configure Script 脚本来配置sdram.

    5.2 Options –> Configure Target  选定Jlink的 Multi-ICE

    5.3 System Views –> Command Line Interface(或按Alt + L)

             loadbinary c:\source\u-boot.bin 0x33d80000 
             loadsymbols c:\source\u-boot 
             setpc 0x33d80000

    好了下面就可以单步调试了,以上只是汇编部分的调试方法,网上还有人说可以c语言单步调试,现在这项技术还没有掌握,等搞定之后再研究c的调试。

    
1.注意此处是 -gdwarf-2而不是-gwarf,原因见如下连接: 
http://againinput4.blog.163.com/blog/static/17279949120118901220684/ 
“正常编译都是OK的,只是无意间,把一个编译选项从: 
DBGFLAGS= -gdwarf-2 
设置为 
DBGFLAGS= -gdwarf 
结果导致编译时候出错: 
cc1: error: invalid option `abi=apcs-gnu' 
而不是预想的,如果识别不了编译参数-gdwarf,那么至少会提示不识别此参数,而不是给出不相关的其他错误啊。 
所以,此处弄出个 
cc1: error: invalid option `abi=apcs-gnu' 
还真的很是无语,如果在不小心或者不知情的情况下,给了个错误的编译参数,结果编译器却没有正确提示,那么真的很难找到问题到底出在哪,也就难解决问题了。 
【总结】 
如果以后编译Uboot的时候,遇到此提示: 
cc1: error: invalid option `abi=apcs-gnu' 
可以考虑一下,有可能是,类似于我这里,给了个编译参数 
DBGFLAGS= -gdwarf,而arm-linux-gcc不识别,导致报出此问题。”

2原因见如下链接: 
http://zhangzhiyin1982.blog.163.com/blog/static/28991217200753025619921/ 
“在make的过程中,出现: 
    isystem /usr/local/arm/bin/../lib/gcc-lib/arm-linux/3.2/include -pipe -DCONFIG_ARM -D__ARM__ -march=armv4 -mtune=arm7tdmi -msoft-float -mabi=apcs-gnu -Uarm -Wall -Wstrict-prototypes -c -o hello_world.o hello_world.c 
cc1: invalid option `abi=apcs-gnu' 
    出错的文件是/cpu/arm920t/下的config.mk:将 
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) 
改成: 
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu),) 
再make,就OK了。 
注意: 
1、u-boot-1.1.5(及更高版本)无法在arm-linux-gcc 2.95.3版本上编译通过,无法识别“-MQ”参数,该参数在rules.mk中设定;”


关键字:TQ2440  uboot  jlink  在线调试 引用地址:TQ2440之uboot---5.jlink 在线调试 u-boot

上一篇:TQ2440之uboot---6.运行U-boot目录examples中的hello_world.c
下一篇:TQ2440之uboot---4.分析u-boot Makefile 最后连接的过程

推荐阅读最新更新时间:2024-03-16 16:00

使用IAR在线调试功能显示数据变化曲线
在调试代码的时候,如果要监控一个变量值的变化情况,一般方法就是将这个变量添加到观察窗口中,或者将这个变量的变化情况通过串口打印出来,又或者将变量添加到数组中,通过断点来观察变量变化情况。但是这些方法都比较麻烦,而且看起来不直观。 IAR中自带了变量值打印功能,同时还能将变量值的变化情况以曲线的形式输出。 下面就来演示一下如何使用变量观察功能。代码进入在线调试界面后,选择ST_LINK选项中的Data Sample Setup选项。 选择界面中就会出现一个添加数据的框。 在这个框里面单击鼠标左键,将要添加的变量直接填入这个框中。 这里将AD采样的值添加进去。通道3和通道4读取到的ADC采样值。 在外部通过信号发
[单片机]
使用IAR<font color='red'>在线</font><font color='red'>调试</font>功能显示数据变化曲线
stm32 keil mdk用jlink在线仿真调试键盘按键——图文详解
原来按键用JLINK是能在线调试的!我原来还以为按键这种东西只能用串口发送键值来调试呢!这太好啦,不知道怎么做的新手们赶紧看下去吧! 注意:在调试需要某个按键被按下才能执行的语句时,只需在相应语句前设置断点,然后全速运行,这时再按下相应按键,则程序便会执行到断点语句前(若不按下按键,程序是不会执行到断点前的)。若需要多次观察断点处变量的情况,则重复上述动作即可(全速运行,按键;全速运行,按键;······)。
[单片机]
stm32 keil mdk用<font color='red'>jlink</font><font color='red'>在线</font>仿真<font color='red'>调试</font>键盘按键——图文详解
STM32_在线调试查看硬件程序运行时间的两种方法
方法一: 为了保证在MDK中读取正确的程序运行时间,必须对仿真器的跟踪项进行设置。 以ULink2为例(如果使用的是J-LINK下载器或者ST-link下载器 原理一样,可做类比): (1)在工程的“ Option for Target ..”目标选项界面中,选择标签“Debug”,进行调试设置界面,选择使用“Cortex-M3-ULIK2”作为仿真器,然后点击右侧的“Settings”按键,进入ULINK设置界面。 (2)点击标签“Trace”进入跟踪设置界面,将“Core Clock:”右侧的编辑区输入你的CPU的频率,例如你的实际CPU运行频率为72MHz,那么你就必须输入72Mhz。 (3)“Core C
[单片机]
STM32_<font color='red'>在线</font><font color='red'>调试</font>查看硬件程序运行时间的两种方法
修正uboot网络不可用
通过使用uboot的网络功能可以更新ubook,烧写内核,文件系统,如果网络功能不可能,那还不如同变砖了一样.当然如果支持sd卡启动,可能通过sd卡完成这些功能,但是也太过麻烦了.飞凌的6410开发板提供的uboot的网络驱动是cs8900,但是实际上网卡是dm9000ae. 烧入后发无法ping通,tftp不可用,输出: CS8900 Ethernet chip not found?! 下面,提供简单的修改方法,把驱动改为dm9000,让网络功能用起来. 1.修改include/configs/smdk6410.h #ifdef CONFIG_DRIVER_SMC911X #undef CONFIG_DRIVER
[单片机]
基于TQ2440的linux-2.6.30.4内核移植
移植环境 CPU:S3C2440 交叉编译器:arm-linux-gcc-4.3.3 虚拟机系统:Ubuntu12.04 参考资料:《天嵌科技linux移植手册》 移植步骤 1、获取内核源码 网址:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/ 找到linux-2.6.30.4压缩包下载即可,然后拷贝到虚拟机中解压 2、在系统中添加对ARM的支持 进入内核源码根目录 Makefile中,修改 ARCH = arm CROSS_COMPILE = arm-linux- 3、修改平台输入时钟 修改内核源码 arch/arm/mach-s3c2440
[单片机]
基于<font color='red'>TQ2440</font>的linux-2.6.30.4内核移植
minis3c2440移植之uboot移植
U-boot移植 (以下步骤适用于s3c2440开发板) 1、修改Makefile文件: a.修改交叉编译宏(CROSS_COMPILE?=)修改为(CROSS_COMPILE?=arm-linux-); b.将._LIBS:后的两个变量交换位置(line289) c.添加tocore2440_config Make文件(line2997) tocore2440_config: unconfig @$(MKCONFIG) $(@:_config=) arm arm920t tocore2440 tocore s3c24x0 包含六个参数:$1. tocore2440 表示在include/configs/目录下必须
[单片机]
S3C2440移植uboot之编译烧写uboot
文章目录 移植环境 获取uboot 更新交叉编译工具 配置环境变量 移植环境 主 机:VMWare–ubuntu16.04 开发板:S3C2440 编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2012.04.01.tar.bz2 获取uboot 进入https://www.denx.de/wiki/U-Boot下载uboot 一直往下拉选择如下 将下载好的压缩包解压到任意文件夹,并创建source insight工程。将下载好的u-boot-2012.04.01.tar_2.bz2放到ubuntu服务器/work/system中。执行以下命令解压uboot: cd
[单片机]
S3C2440移植<font color='red'>uboot</font>之编译烧写<font color='red'>uboot</font>
移植uboot-设置默认环境变量,裁剪,并分区
在上一章使uboot支持网卡传输文件后,但是每次启机时,环境变量都要变为默认值,需要重新设置ip,MAC地址才行,由于没有配置mtdparts命令,启动内核也不成功 所以本章主要学习: 1)修改环境变量默认值 2)裁剪uboot 3)分区,设置mtdparts命令 1.修改之前,先来理解下uboot的环境参数 首先,uboot会去校验(CRC)存放环境变量的一段空间 ,若CRC有效则使用该空间里的环境变量,无效则用默认的环境变量. 而我们移植的uboot,由于一直没有使用save,所以没有读不出CRC校验,使用的默认环境变量,如下图所示: 2.来修改uboot的默认环境变量 (PS:uboot此时的内存分
[单片机]
移植<font color='red'>uboot</font>-设置默认环境变量,裁剪,并分区
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved