s3c2440裸机开发调试环境(MDK4.72,Jlink v8,mini2440)

发布时间:2024-08-09  

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

 

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

 

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

 

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

 

 

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

 

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

 

测试程序

  1. #include   

  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 1的Optionsfor 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. //  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 

    Objectstest.axf INCREMENTAL         // Download program  

  46. SetupForStart();                        // Setup for Running  

  47. g, main                                 // Goto Main 

 

 

 点击Settings按钮,设置JTAG Speed为Auto Selection,如下图

 

 

 Utilities选项

 

 

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

 

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

 单步调试

 


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    没有PLC怎么用计算机控制变频器,串口调试工具实现通信; 最近的三菱FX3G基础入门中讲到的变频器的MODBUS通信控制,还是有好多粉丝私信询问相关问题,今天......
    是自己有台电脑,少看电影,少打游戏,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会......
    均为第一幅图提供辅助说明,更多细节需查看相关技术手册。比方MCO输出功能怎么用,SWO怎么操作还需进一步查看相应技术文档。 ......
    stm32怎么用keil软件进行调试;在做开发的前几年,基本上都没用仿真,有bug就尝试改程序,一边改一边调试。 甚至都还不知道硬件仿真存在的价值,因为一直都没用过,而且很多芯片也不支持。 直到......
    老板不懂硬件怎么办?(2024-11-25 11:22:04)
    老板不懂硬件怎么办?; 很多有硬件产品的公司,很多老板不懂硬件。如果作为供应商或者合作伙伴甚至下属员工与其沟通的话,大家会非常难受,因为老板觉得硬件非常简单。所以......
    )有几个COM端子:COM1.COM2,COM3,COM4,COM5,怎么用用啊,究竟对应Y里面着哪些Y端子啊? 答:因为输出负载包括接触器、继电器线圈、电磁阀线圈、指示灯、喇叭等,各种......
    就可以了。 至于单片机嘛,入门51的单片机也很简单,就是看手册配置单片机的寄存器而已。 就像你买一个冰箱,它配一个说明书给你,教你怎么用。 学习编程的过程才是最枯燥,连续看1个月视频,敲一个月的代码,只能......
    ) (图一) (图二)点击图一的NetDevice通讯测试软件,然后输入图二的IP地址,并设置好的EM277的地址与这一制,DB中选择M,I,Q,W(D),后面选择字节数的开始地址,或者,这样......
    USART_GetFlagStatus(USART1,USART_FLAG_RXNE)的返回值就为1(SET),若无数据则为RESET。 二、USART_FLAG_TXE和USART_FLAG_TC怎么用这里主要说的是在特殊情况下发送字符软件......
    STM32F1 _DMA_USART(2024-07-30)
    ),很多人都知道它的意思,但基本上不知道的怎么用,或者不知道它的用途。其实DMA在计算机里面是非常重要的,它可以减少CPU的资源。大家都用U盘拷贝过数据,这就是很常见的DMA应用。假如不适用DMA传输......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>