当前位置:首页 > 单片机 > 单片机
[导读] 硬件: 开发板: TQ2440 仿真器: openJtag软件: 系统: XP + vmware虚拟ubuntu_10.10 编译: ubuntu_10.10下/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/ 调试环境: XP

硬件:

开发板: TQ2440

仿真器: openJtag

软件:

系统: XP + vmware虚拟ubuntu_10.10

编译: ubuntu_10.10下/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/

调试环境: XP + eclipse + OpenOCD_GUI

u-boot版本:u-boot-2010.06-rc1

一. 调试环境

用openjtag调试与烧到nand_flash中运行基本相同,就是有两点不一样:一是跳过了memory初始化过程 二是跳过了从flash中读取数据到内存

1.1 用openjtag调试时,需要把arch/arm/cpu/arm920t/start.S中的

  1. #ifndef CONFIG_SKIP_LOWLEVEL_INIT

  2. #if 0

  3. blcpu_init_crit

  4. #endif

  5. #endif

  6. cpu_init_crit注掉。

1.2 同时在 board/samsung/smdk2410/config.mk 中将改TEXT_BASE为:

TEXT_BASE=0x33000000

这会导致arch/arm/cpu/arm920t/start.S跳过从nand_flash中读取uboot到memory的过程。

因为当前运行地址为0x33000000, 程序的链接地址TEXT_BASE=0x33000000

程序的加载地址与运行地址是相等的, 所以

adr r0, _start /* r0 <- current position of code */

ldr r1, _TEXT_BASE /* test if we run from flash or RAM */

cmp r0, r1 /* don't reloc during debug */

beq clear_bss

都是在memory中,就不执行从nand_flash中读取uboot了.

1.3 在config.mk中

  1. 153 DBGFLAGS= -g3 # -DDEBUG

  2. 154 OPTFLAGS= -O0 #-fomit-frame-pointer

  3. 说明:

    1. -glevel:

    Level 1输出最少量的信息,仅够在不打算调试的程序段内backtrace.包括函数和外

    部变量的描述,但是 没有局部变量和行号信息.

    Level 3包含更多的信息,如程序中出现的所有宏定义.当使用-g3选项的时候,某些

    调试器支持 宏扩展.

    2. 将-Os改为-O0:

    不去掉-Os,如果在调试时,函数会乱跳,但还不是出错的乱跳,出现这种令人抓乱的情况时,就需要考虑是不是优化的太多了,把-Os改为-O0重新编译一下就ok了!

1.4 但是对于1.3中改DBGFLAGS= -g3,会引起u-boot.lds生成不正常

需要在Makefile中做一点小小的处理,将CPPFLAGS中的-g3替换成-g,生成新的CPPFLAGS

  1. 273 TEMPCPPFLAG=$(subst g3,g, $(CPPFLAG))


  2. 368 $(obj)u-boot.lds: $(LDSCRIPT)

  3. 369 $(CPP) $(TEMPCPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@

1.5 重新编译之后,将虚拟机中的u-boot复制到windows下的目录里,就可以利用openjtag在eclipse里面进行单步调试了.(具体的设置方法请参见)

二.测试代码:

网上有很多移植的教程,按照教程一步步来做肯定会移植好u-boot的,但是如果在移植过程中出现了错误如何定位呢?下面给出一些测试代码来验证功能是否正常.

1. 测试内存正常的代码

  1. /*write 0x12345678to0x30000000*/

  2. ldr r0,=0x30000000

  3. ldr r1,=0x12345678

  4. str r1,[r0]


  5. /*read from 0x30000000&&compare*/

  6. ldr r2,=0x30000000

  7. ldr r0,[r2]

  8. cmp r1,r0

  9. bne ledon


  10. deadloop:

  11. b deadloop


  12. ledon:

  13. ldr r0,=0x56000010

  14. ldr r1,=0x15400

  15. str r1,[r0]


  16. ldr r0,=0x56000014

  17. ldr r1,=0x160

  18. str r1,[r0]

  19. deadloop2:

  20. b deadloop2

使用说明: u-boot移植过程中,一般要进行memory初始化,初始化好memory之后,拿上面这一段代码测试一下。如果led灯亮,说明有错误。

思路: 向内存的起始地址0x30000000写一个数0x12345678,然后读取出来,若相等,则说明memory初始化正常。

注意:arm好像没有直接读取内存到寄存器的指令,mov r3, #0 然后再用ldr ldr r3, [r3]

2. 测试nand flash 读写正常


  1. SMDK2410 # nand write 0x30000000 0x40000 0x10000


  2. NAND write: device 0 offset 0x40000, size 0x10000

  3. 65536 bytes written: OK

  4. SMDK2410 # nand read 0x30000000 0x40000 0x100


  5. NAND read:device 0 offset 0x40000,size 0x100

  6. 256 bytes read:OK

  7. SMDK2410 # md.b 0x30000000 0x10

  8. 30000000:ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff................

需要用到u-boot的命令(nand read 与 nand write 和md)

nand write: 将数据从memory的0x30000000长度0x10000写入到nand的0x40000处

nand read: 将数据从nand的0x40000长度为0x10000写入到memory的0x30000000处

md.b : 按字节显示memory的0x30000000长度为0x10的数据


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭