利用IAR调试Mini2440 收藏
利用IAR 调试mini2440,准备先玩玩裸奔

以前开发Lpc2214的时候用的是IAR调试环境 感觉还是很不错的 当时一度错怪的了这开发环境

因为Lpc对Jtag的引脚可以配置成普通IO

我当时一时疏忽把他配置成IO了 导致IAR无法单步执行 一度觉得这个环境不好用 当时由于把Jtag口屏蔽了 导致下载一次以后JTAG口就不能用了 很多时候都是用串口擦除了片内Flash再烧写 后来回忆起来当时有点傻(主要还是当时误认为芯片被加密了,只能用串口擦除),当时完全不必用串口擦除程序。其实Jtag口被屏蔽了 直接把芯片的ISP使能引脚短接,然后芯片就从内部的Bootloader启动了,然后Flashloader就可以下载程序了

开发Lpc时还有一个需要注意的地方就是如果MEMMAP设置的不对的话,一发生中断就会跳到一个不对的地方 导致中断无法调试 因为这个原因 让我当时怀疑IAR是无法调试中断的 后来发现我完全错了

后来接触了Samsung的一些片子,知道了Mac文件的作用,mac文件是在编译成功的二进制文件下载到硬件之前,用来配置ARM寄存器的文件,比如2440带有片上的SDRAM控制器,由于上电后SDRAM寄存器是默认不使能的,所以如果要在RAM中调试程序的话,程序是无法下载到RAM中的。所以在文件下载之前必须配置SDRAM控制器。

我先在RAM中跑了一个RAM程序,mac文件如下

execUserFlashInit()
{
    __writeMemory32(0x00000000, 0x53000000, "Memory");
    __writeMemory32(0xffffffff, 0x4a000008, "Memory");
    __writeMemory32(0x000007ff, 0x4a00001c, "Memory");
    __writeMemory32(0x00000000, 0x53000000, "Memory");
    __writeMemory32(0x000055AA, 0x56000050, "Memory");
    __writeMemory32(0x00000007, 0x4C000014, "Memory");
    __writeMemory32(0x00FFFFFF, 0x4C000000, "Memory");
    __writeMemory32(0x00061012, 0x4C000004, "Memory");
    __writeMemory32(0x00040042, 0x4C000008, "Memory");
    __writeMemory32(0x22111120, 0x48000000, "Memory");
    __writeMemory32(0x00002F50, 0x48000004, "Memory");
    __writeMemory32(0x00000700, 0x48000008, "Memory");    
    __writeMemory32(0x00000700, 0x4800000C, "Memory");
    __writeMemory32(0x00000700, 0x48000010, "Memory");
    __writeMemory32(0x00000700, 0x48000014, "Memory");
    __writeMemory32(0x0007FFFC, 0x48000018, "Memory");
    __writeMemory32(0x00018005, 0x4800001C, "Memory");
    __writeMemory32(0x00018005, 0x48000020, "Memory");    
    __writeMemory32(0x008E0459, 0x48000024, "Memory");
    __writeMemory32(0x00000032, 0x48000028, "Memory");
    __writeMemory32(0x00000030, 0x4800002C, "Memory");
    __writeMemory32(0x00000030, 0x48000030, "Memory"); 
}

将ICF文件中的起始地址都设置成SDRAM的地址,程序就能下载运行并且调试了。

现在还没有摸索出来怎么将文件利用flashloader下载到外部flash中。参考lpc的调试,发现不管是下载到片内的FLASH还是片外的Flash,flashloader在程序下载之前首先要将一个.out文件下载到片子的RAM中,这点和HJTAG相似,HJTAG在下载时也是需要你指明RAM的起始地址的,他们这两个工具下载原理是一样的,加入你要将B程序烧写进flash中,必须先将一个编译好的二进制程序A下载到片子的内部RAM中,然后利用A这个程序在将要下载的B程序下载到flash中

IAR的flashloader提供很多片子的A程序,像LPC系列片子的A程序都有,但是对于2440就没有这个程序,需要自己写,如果不自己实现的话也可以采用HJTAG的HFALSHER来进行烧写。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dog0138/archive/2008/11/18/3321361.aspx

转载于:https://www.cnblogs.com/xilentz/archive/2010/06/07/1753521.html

利用IAR调试Mini2440相关推荐

  1. IAR调试按钮功能说明及调试主要看哪些内容

    参考文档:http://www.docin.com/p-1983183635.html IAR调试按钮功能说明 先来看常用的快捷键: 全速运行:F5 单步运行:F10 加断点/取消断点:Ctrl+F9 ...

  2. 变频器怎么设置_如何利用串口调试软件与变频器通信?

     西门子博途的全套视频教程下载!  西门子S7-1500内部培训PPT下载! 每一个做工控的都必须要会利用串口调试软件来和我们的外围设备来做通讯测试.今天我们就来学习怎么用串口调试软件控制台达的这款变 ...

  3. 利用浏览器调试功能 计算 百度网盘 文件数量 V2

    最近需要统计百度网盘里文件的数量,百度网盘又没有提供这样的功能,因此之前自己写了段脚本进行查验,见<利用浏览器调试功能 计算 百度网盘>.之后发现每个目录最多文件数只有1000,因此研究了 ...

  4. 一步一步学FRDM-KE02Z(一):IAR调试平台搭建以及OpenSDA两种工作模式设置

    摘要:FRDM-KE02Z是飞思卡尔公司较为新的微控制器,学习和开发资料较少.从本篇开始会陆续介绍其相关的开发流程,并完成一个小型的工程项目.这是本系列博客的第一篇,主要介绍开发环境IAR for A ...

  5. JLINK仿真器来仿真调试mini2440

    以下是网络牛人的原话: 鉴于目前大家使用最多的ARM9开发板是mini2440, 所以我们将以mini2440开发板为例,通过一个简单示例来演示 如何使用JLINK仿真器来仿真调试mini2440 h ...

  6. 利用vscode调试vue代码

    利用vscode调试代码,实测非常好用 注意:现在只支持vue2.x. 1.配置launch.json {// 使用 IntelliSense 了解相关属性. // 悬停以查看现有属性的描述.// 欲 ...

  7. 利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突

    VS2019利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突 之前一直是使用release发布代码模式进行程序编译,前天突然出现这个问题 ...

  8. [免费专栏] Android安全之利用JDB调试Android应用程序(动态代码注入技术)

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  9. 利用反汇编调试与补码解释0x80000000 / -1整形输出异常不一致

    作证解释两种情况下0x80000000 / -1输出异常不一致(利用反汇编调试) 代码段一: int a = 0x80000000; int b = a / -1; printf("%d\n ...

最新文章

  1. 零基础学习SVN之(二):CVS与SVN的区别
  2. mysql 郝朝阳_秒级故障切换!用MHA轻松实现MySQL高可用(三)
  3. MySql的安装、配置(转)
  4. 新手入门深度学习 | 1-2:编译器Jupyter Notebook
  5. SLAM知识[7]:依赖项和安装
  6. linux如何查看系统架构?(查看系统架构命令)(armv7l)
  7. staf工作笔记-stax自定义信号和信号处理功能
  8. 容器编排技术 -- Kubernetes 架构
  9. 设计原则之单一职责原则
  10. C 语言异常处理(五十二)
  11. servlet过滤器(Filter)
  12. lamp mysql登录_LAMP 3.2 mysql登陆
  13. 码农小汪之理解Java注解。
  14. 专访Wunderlist主设计师Jan Martin:永远不要盲目跟风流行趋势
  15. matlab钉子链条,MatLab的Galton钉板问题训练报告 终极版
  16. 2010.5.7 MFC中弹对话框以跟踪和程序运行中修改Static Text的Caption属性
  17. js 通过图片链接获取file对象
  18. aardio - MsSql数据库+虚表示例
  19. simlink里面MATLAB Function ‘xxx‘ not supported for code generation.
  20. 快速搭建你的api数据交易平台-图文开发教程

热门文章

  1. 站在悬崖边上,金立手机的生死较量
  2. Linux 命名空间
  3. PHP错误日志记录:display_errors与log_errors的区别
  4. 钱盾率先提出的“全流程屏障”究竟是怎样的一种能力?
  5. JAVA常见算法题(二十五)
  6. 回溯法——求解N皇后问题
  7. window7 64位下Android studio 安装genymotion模拟器
  8. NexentaStor iSCSI/ NAS 存储服务器软件图解教程(3)——NMV快速上手指南Part2
  9. Webdriver for python 入门示例2(浏览器句柄操作)
  10. node ,express框架后台设置跨域操作,路由中间件