zoukankan      html  css  js  c++  java
  • s3c2440裸机开发调试环境(MDK4.72,Jlink v8,mini2440)

     工程源码下载http://download.csdn.net/detail/lc123yx/8280691

    我的开发环境:windows 7 32位,J-linkv8,mini2440开发板一块。最后选择了:MDK4.72版本,J-ink v8的当前最新版本J-linkARM v4.94。

    1)打开Keil uVision4新建一个工程:

     

    2)新建一个目录用于存放我们的工程文件,这样我用新建一个test目录:并且取工程名为test并保存:

     

     3)接下来选择CUP database:我们选择samsungS3C2440A,点击OK;之后会出现第二个图问你是否拷贝'S3C2440.s'到工程文件夹并加入到工程里,S3C2440.s是启动代码我们选择YES

     

     

     4)然后我们需要对S3C2440.s进行一些必须的配置,打开此文件选择编辑界面下面的Configuration wizard进行配置,这里我把全部都打上勾,然后保存:

     

    5)之后新建一个c文件并编写代码,我习惯新建一个main目录用来保存这个存放入口函数的文件,然后把这个文件加到工程里:

     

    测试程序

    1. #include <S3C2440.H>  
    2. void delay()  
    3. {  
    4.     int i,j;  
    5.     for(i=0;i<10000;i++)  
    6.     {  
    7.         for(j=0;j<50;j++);  
    8.     }  
    9. }  
    10. int main()  
    11. {  
    12.     GPBCON = 0x155555;  
    13.     while(1)  
    14.     {  
    15.         GPBDAT |= 0x1E0;  
    16.         GPBDAT &= 0x1C0;  
    17.         delay();  
    18.           
    19.         GPBDAT |= 0x1E0;  
    20.         GPBDAT &= 0x1A0;  
    21.         delay();  
    22.         GPBDAT |= 0x1E0;  
    23.         delay();  
    24.     }  

     

     

     

     6)把所有c源文件加进工程之后,再选择Target 1Optionsfor Target ' Target 1'进行相应的配置

     

     

     

     ④在User选项里相应位置添加命令如下:(用于生成.bin文件和.axf调试文件,添加的命令为:fromelf --bin -o @p.bin @p.axf,记得前面打勾)

     


    如下图Asm配置

     

     ⑤在Linker选项里勾上Use Memory Layout from target Dialog,如下图:

     

    ⑥在debug选项的配置主要有以下几项:

    1)勾上右边的Use,Use里选择J-Link/J-Trace arm(选择Jlink调试)

    2)勾上LoadApplication at Startup,勾上Run to main()  (让调试的时候直接从main函数开始)

    3)在InitializationFile选择之前修改的Ext_ARM.ini文件的路径

    在工程目录下建立一个文本文档,复制下面代码,名字改成Ext_RAM.ini 将文中test改成自己的工程名称。

    Ext_RAM.ini 
    1. FUNC void SetupForStart (void) {  
    2.   
    3. // <o> Program Entry Point  
    4.   PC = 0x30000000;  
    5. }  
    6.   
    7.   
    8. FUNC void Init (void) {  
    9.   
    10.   _WDWORD(0x4A000008, 0xFFFFFFFF);      // Disable All Interrupts  
    11.   
    12.   _WDWORD(0x53000000, 0x00000000);      // Disable Watchdog Timer  
    13.     
    14.                                         // Clock Setup   
    15.                                         // FCLK = 300 MHz, HCLK = 100 MHz, PCLK = 50 MHz  
    16.   _WDWORD(0x4C000000, 0x0FFF0FFF);      // LOCKTIME  
    17.   _WDWORD(0x4C000014, 0x0000000F);      // CLKDIVN  
    18.   _WDWORD(0x4C000004, 0x00043011);      // MPLLCON  
    19.   _WDWORD(0x4C000008, 0x00038021);      // UPLLCON  
    20.   _WDWORD(0x4C00000C, 0x001FFFF0);      // CLKCON  
    21.   
    22.                                         // Memory Controller Setup for SDRAM  
    23.   _WDWORD(0x48000000, 0x22000000);      // BWSCON  
    24.   _WDWORD(0x4800001C, 0x00018005);      // BANKCON6  
    25.   _WDWORD(0x48000020, 0x00018005);      // BANKCON7  
    26.   _WDWORD(0x48000024, 0x008404F3);      // REFRESH  
    27.   _WDWORD(0x48000028, 0x00000032);      // BANKSIZE  
    28.   _WDWORD(0x4800002C, 0x00000020);      // MRSRB6  
    29.   _WDWORD(0x48000030, 0x00000020);      // MRSRB7  
    30.   
    31.   _WDWORD(0x56000000, 0x000003FF);      // GPACON: Enable Address lines for SDRAM  
    32. }  
    33.   
    34.   
    35. // Reset chip with watchdog, because nRST line is routed on hardware in a way   
    36. // that it can not be pulled low with ULINK  
    37.   
    38. _WDWORD(0x40000000, 0xEAFFFFFE);        // Load RAM addr 0 with branch to itself  
    39. CPSR = 0x000000D3;                      // Disable interrupts  
    40. PC   = 0x40000000;                      // Position PC to start of RAM  
    41. _WDWORD(0x53000000, 0x00000021);        // Enable Watchdog  
    42. g, 0                                    // Wait for Watchdog to reset chip  
    43.   
    44. Init();                                 // Initialize memory  
    45. LOAD 
      Objects
      test.axf INCREMENTAL         // Download program  
    46. SetupForStart();                        // Setup for Running  
    47. g, main                                 // Goto Main 

     

     

     点击Settings按钮,设置JTAG SpeedAuto Selection,如下图

     

     Utilities选项

     

     之后就算配置好了,现在rebuild一下,就可以在工程目录里生成bin文件跟axf文件了,连好Jlink和开发板,点击debug按照开始调试,不出以外,就可以开始调试了,如下所示:

     

    连接上Jlink 开发板Nand Flash启动 点Debug

     单步调试

     

  • 相关阅读:
    GPU 版 TensorFlow failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
    Python -- 值转换为字符串的两种机制
    Python
    vim中注释多行python代码
    HTTP协议状态码详解(HTTP Status Code)
    关于Python报错:SyntaxError: Non-ASCII character 'xe5' in file的解决方法
    Linux如何查看进程、杀死进程、启动进程等常用命令
    vim 如何设置显示行号和缩进
    一、报错
    二、极光推送
  • 原文地址:https://www.cnblogs.com/liuchengchuxiao/p/4149270.html
Copyright © 2011-2022 走看看