mini2440在Keil MDK下使用Jlink调试入门

           其实早在以前学单片机的时候就听说过调试器功能的强大,可是对于单片机Keil可以直接在线仿真,而无需硬件的支持,但arm9貌似不同,脱离硬件点击调试的话会报错,提示目标没有权限,呵呵,可能是我还没找到方法吧,如果有谁知道的希望能告诉我,先谢谢啦!

       下面简单说说怎么实现硬件调试

①首先如果你使用的是Keil MDK4.11的可以直接去目录Keil\ARM\Boards\Samsung\S3C2440\RTX_Blinky拷贝一个名叫Ext_RAM.ini的文件,将其放到工程目录下,如果是其他版本的话,那么首先新建一个文件,命名Ext_RAM.ini,向其中写入一下内容,如下

FUNC void SetupForStart (void) {

// <o> Program Entry Point
  PC = 0x30000000;
}


FUNC void Init (void) {

  _WDWORD(0x4A000008, 0xFFFFFFFF);      // Disable All Interrupts

  _WDWORD(0x53000000, 0x00000000);      // Disable Watchdog Timer
 
                                        // Clock Setup
                                        // FCLK = 300 MHz, HCLK = 100 MHz, PCLK = 50 MHz
  _WDWORD(0x4C000000, 0x0FFF0FFF);      // LOCKTIME
  _WDWORD(0x4C000014, 0x0000000F);      // CLKDIVN
  _WDWORD(0x4C000004, 0x00043011);      // MPLLCON
  _WDWORD(0x4C000008, 0x00038021);      // UPLLCON
  _WDWORD(0x4C00000C, 0x001FFFF0);      // CLKCON

                                        // Memory Controller Setup for SDRAM
  _WDWORD(0x48000000, 0x22000000);      // BWSCON
  _WDWORD(0x4800001C, 0x00018005);      // BANKCON6
  _WDWORD(0x48000020, 0x00018005);      // BANKCON7
  _WDWORD(0x48000024, 0x008404F3);      // REFRESH
  _WDWORD(0x48000028, 0x00000032);      // BANKSIZE
  _WDWORD(0x4800002C, 0x00000020);      // MRSRB6
  _WDWORD(0x48000030, 0x00000020);      // MRSRB7

  _WDWORD(0x56000000, 0x000003FF);      // GPACON: Enable Address lines for SDRAM
}


// Reset chip with watchdog, because nRST line is routed on hardware in a way
// that it can not be pulled low with ULINK

_WDWORD(0x40000000, 0xEAFFFFFE);        // Load RAM addr 0 with branch to itself
CPSR = 0x000000D3;                      // Disable interrupts
PC   = 0x40000000;                      // Position PC to start of RAM
_WDWORD(0x53000000, 0x00000021);        // Enable Watchdog
g, 0                                    // Wait for Watchdog to reset chip

Init();                                 // Initialize memory
LOAD *.axf INCREMENTAL         // Download program
SetupForStart();                        // Setup for Running
g, main  

然后保存,放到工程目录下,或者随便哪里都可以,只要你能保证他不被删除,懒得动手的话可以直接到本文最后的地址下载一个,

②配置工程,点击设置按钮,然后点到debug下,选择你的调试器,然后添加初始化文件,即第一步中创建的那个文件,如下

mini2440在Keil MDK下使用Jlink调试入门_第1张图片

mini2440在Keil MDK下使用Jlink调试入门_第2张图片

mini2440在Keil MDK下使用Jlink调试入门_第3张图片

mini2440在Keil MDK下使用Jlink调试入门_第4张图片

mini2440在Keil MDK下使用Jlink调试入门_第5张图片

这里特别注意最后一张图片,不要勾选,否则点击debug会报错,具体原因我目前不清楚,还有网上说需要点击setting设置芯片,我实际调试的结果是不需要,所以不需要添加,保持默认

③修改Ext_RAM.ini文件,根据你所产生的axf文件来进行修改,如下比如我的为uart发送和接收.axf所以需要将①中的*改成uart发送和接收,如图所示

mini2440在Keil MDK下使用Jlink调试入门_第6张图片

④正式开始调试

首先将开发板上电,接着给MDK添加断点,直接按F9即可添加,如图

mini2440在Keil MDK下使用Jlink调试入门_第7张图片

然后点击bebug即可开始调试,调试时F11-单步不跳过函数,F10-单步跳过函数,CRL+F11单步跳出函数,如图所示

mini2440在Keil MDK下使用Jlink调试入门_第8张图片

mini2440在Keil MDK下使用Jlink调试入门_第9张图片

当然如果需要看启动代码单步运行的话,可以修改Ext_RAM.ini如下,去掉其中的g, main,如图

mini2440在Keil MDK下使用Jlink调试入门_第10张图片

mini2440在Keil MDK下使用Jlink调试入门_第11张图片




你可能感兴趣的:(mini2440在Keil MDK下使用Jlink调试入门)