ARM调试之裸板篇.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM调试之裸板篇

ARM调试之裸板篇 ARM调试笔记之裸板篇 1.裸板调试方法,OK 1)Keil+Jlink使用 - NorFlash上在线调试 - Keil+Jlink组合莫名的问题较多,同样的代码用Keil4.5+JlinkV7就有问题,Keil3.5+JlinkV7就可以; 配置时主要注意Target:ROM/RAM的配置及Debug/Util:Jlink的配置,烧写算法可选择相近芯片的一种; - 建议还是用Keil+Ulink组合 - 可使用Keil进行仿真调试 2)反汇编查看 - ARM伪指令,有ARM、GNU之分,相对来说Keil仿真方便,GNU稍微麻烦但免费 3)串口/shell打印 4)仿真器、示波器查看输入输出 2.Linux调试方法,OK 1)静态检查,PCLINT/代码走查等 2)动态调试 - GDB在线调试(KGDB内核调试) - 打印 - VC模拟Unit测试等 3.版本制作 1)裸板程序 - GPIO A) 原理图,芯片手册查看OK B) Keil仿真、在线调试OK C) GNU调试,lds/make文件 D) 大体步骤: --启动文件S,硬件初始化:关看门狗-初始化时钟-初始化SDRAM --启动文件S,软件初始化:设置SP堆栈指针,指向某块内存(SRAM/SDRAM)-设置main执行完的返回地址-调用C main函数-清理工作,返回 --业务处理C,从Main入口进入,处理 E) 几个关键问题: --volatile作用,告诉编译器不进行优化 --寄存器按位清零、按位赋值 --根据原理图明确各引脚输入/输出 --链接地址,程序运行时应该位于的地址-Makefile中指定 --ARM中,PC值=当前指令地址+8 - SDRAM A)CPU-存储管理器-SDRAM B)存储管理器,配置初始化 C)SDRAM参数 --地址:片选、bank4、行13、列10 -芯片手册 --数据:位宽32 -原理图 --时钟:刷新周期 -芯片手册 D)几种方式 --NOR中程序初始化看门狗、SDRAM-程序拷贝到SDRAM中-程序跑在SDRAM中 @这种方式扩展后,即Uboot启动内核的基本思路; @另外,注意明确PC指针的变化,什么时候从NOR转到SDRAM中的。 --NOR中程序初始化看门狗、SDRAM-栈设置在SDRAM中-程序跑在NOR-FLASH中 --以上两种,注意makefile中链接地址(即程序运行地址)的指定! - MMU A)权限管理:A、B不同程序内存空间互不相同,不能互相访问 B)内存映射:虚拟地址-物理地址映射 --CPU-MMU-SDRAM --TLB/CACHE --CPU看到的地址无虚拟/物理之分,链接地址即CPU看到的地址 --S3C2440最多用到2级页表:段1M,大页64k,小页4K,极小页1k --映射方式:VA=fun(PA)或表格方式,ARM使用后者(页表) 页表的组成:页表的下标号值为VA的段基址或页基址,内容为PA的段基址或二级页表基址 这类表格称为页表(Page table),其中的条目(Entry)也称为描述符(Descriptor) 页表映射关系不一定全部建立,按需要初始化相关的部分即可; --大体操作: 建立页表(建立映射关系)-页表地址告诉MMU-启动MMU-使用虚拟地址访问内存 --make链接脚本可分段指定程序的运行地址,如A-0B-0 --启动代码汇编调用C函数,需先设置SP堆栈指针 --C中使用汇编及ARM协处理指令用法,需再细化下

文档评论(0)

zw4044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档