mini2440---keil for ARM下的调试与下载环境的搭建

发布者:科技徜徉最新更新时间:2020-06-10 来源: eefocus关键字:mini2440  keil  ARM  下载环境 手机看文章 扫描二维码
随时随地手机看文章

题外话:编译环境选择推荐


对于刚刚接触ARM裸机编程的各位,我要特别的进行提醒一下,就是关于编译环境的选择问题。目前主流的有ADS+AXD,KEIL FOR ARM,IAR FOR ARM三种,我开始使用的ADS+AXD进行学习,因为光盘里面自带,而且很多资料都是他的,但是个人感觉真心调试十分的不方便,而且各种容易死机,并且现在也已经不更新了,北航一本讲嵌入式的书出了一个第二版,就是把ADS换成了KEIL,而且以后KEIL会是主流,因此我推荐选择KEIL进行学习。IAR听我一个同学说也十分好用,但是在网上找有关方面的资料不是很多。而且我想北航一群教授编书都用KEIL进行,说明KEIL自有他的优势,书上这么说了,那以后会有更多学生用,这样慢慢也会更加流行与主流。闲话就说这些。


正题:Keil for ARM的环境搭建


提醒一下各位就是在keil for ARM进行环境搭建的时候,要注意调试时环境搭建与下载环境的搭建是不同的,因为在下载环境搭建的时候是把程序下载到nor flash里面直接进行运行,而调试环境是把程序下载到RAM里面进行执行。nor flash里面也可以进行调试环境的搭建,但是在nor flash里面只能建立两个端点,而且flash擦写次数有限对寿命有影响。所以不推荐。所以调试的时候推荐在RAM里面进行调试。


配置方法的测试环境:MDK 4.11    JLINK 4.08  开发板是mini2440 其他的环境配置类似,


首先介绍关于程序下载的方法


①建立一个project芯片选择S3C2440(在SAMSUNG里面)并且加入启动代码。


②编辑自己的测试程序。


测试程序如下


#include

void delay()

{

int i,j;

for(i=0;i<10000;i++)

{

for(j=0;j<50;j++);

}

}

int main()

{

GPBCON = 0x155555;

while(1)

{

GPBDAT |= 0x1E0;

GPBDAT &= 0x1C0;

delay();

GPBDAT |= 0x1E0;

GPBDAT &= 0x1A0;

delay();

GPBDAT |= 0x1E0;

delay();

}

}


实现的两个LED循环间歇显示。


③开始进行工程的配置,配置分为以下几步(程序下载的配置)


第一步


也是非常要注意的一点就是:打开S3C3440.S这个文件夹,点击configuration wizard


进入这个界面,把所有选项都勾上。

第二步现在进入Target的配置


现在点击中的魔棒,出现配置环境。

第三部配置Target这个选项栏。配置如下

后面我会进行介绍为什么需要这样去配置它。编译器回根据这个环境生成一个.sct的文件与之对应,作为程序加载,执行的一些信息。


第四步:进入output这个选项中勾选Creat HEX file,如下图所示。

第五步:进入Utilities这个选择中,选择如下

因为在此我使用的是JLINK,再点击setting进行设置,设置情况如下图

对于flash算法的选择可以选择一个相近的,对于我的板子,nor flash是AM29LV160DB,因此我选择了这个类型的nor flash,做完以上配置后,点击OK,不断OK就可以配置成功了。就可以编译,没有任何错误再进行下载。就可以看到LED循环点亮了。 


下面是关于程序调试的配置方式。我们调试是在RAM里面进行的。


第一步:同样需要对S3C2440.S进行configuration wizard进行勾选。如果开始已经做了,这步略过。


第二步:进入到配置界面的Target选项栏。进行如下配置。

第三步,进入到output选项栏勾选Creat HEX file,如果已经勾选可以略过。


第四步:进入Debug选项栏,进行如下的配置

Ext_RAM.ini(来自事例程序中)文件代码如下并且要进行修改


FUNC void SetupForStart (void) {

 

// 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 .led.axf INCREMENTAL         // Download program

SetupForStart();                        // Setup for Running

g, main                                 // Goto Main


 


第一个标红的地方即:第三行------PC = 0x30000000是程序的普通入口(entry point),(个人觉得:在我们这个程序中这个普通入口同时也是初始入口)


第二个标红的地方是倒数第三行------LOAD .led.axf INCREMENTAL需要我们进行修改的地方,要改成与你生成的***.axf文件名相对应。

这里就可以看到你要生成的目标文件名。


进行以上步骤后,就可以点击Debug进行调试了。

关键字:mini2440  keil  ARM  下载环境 引用地址:mini2440---keil for ARM下的调试与下载环境的搭建

上一篇:S3C2440的Keil启动文件S3C2440.s添加中断配置
下一篇:个人修改的用于MDK的2440init.s

推荐阅读最新更新时间:2024-11-02 18:09

苹果Mac:Intel和Arm的PC生态之争进入白热化
Intel 表示将会在过渡期内继续支持 Mac。 就与苹果的“分手”,Intel 公开回应了。 Intel 与苹果在 Mac 上的架构合作起始于 2005 年,迄今为止已经长达 15 年。而在日前的 WWDC(全球开发者大会)上,苹果正式宣布旗下 Mac 电脑放弃 Intel 芯片,转向基于 Arm 架构自研芯片,难免会让外界有诸多猜测,包括对 Intel 架构能力的质疑。 对此,Intel 给出回应,称将会在过渡期内继续支持 Mac,同时它强调自家的处理器目前在行业中仍然是最好的。 失去苹果后,Intel 将如何做调整? 对于任何合作厂商来说,苹果都是一家重要客户。以 Intel 为苹果供应芯片的 Mac 产品为
[嵌入式]
苹果Mac:Intel和<font color='red'>Arm</font>的PC生态之争进入白热化
ARM裸板】Nand Flash基础与时序分析
1.硬件知识 1.1 如何传输地址信号? DATA0 ~ DATA7上既传输数据,又传输地址(复用) ALE (Address Lock Enable)地址锁存允许信号 当ALE = 1时,传输地址 当ALE = 0时,传输数据 1.2 如何传输命令? 命令表 由NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令 DATA0 ~ DATA7上既传输数据,又传输地址,也传输命令 CLE (Command Lock Enable)地址锁存允许信号 当ALE = 1时,传输地址 当CLE = 1时,传输命令 当ALE = 0 & CLE = 0时,传输数据 1.3.NAND、NOR、SDRAM
[单片机]
【<font color='red'>ARM</font>裸板】Nand Flash基础与时序分析
基于ARM与PID算法的开关电源控制系统
          近年来,嵌入式技术发展极为迅速,出现了以单片机、专用嵌入式ARM为核心的高集成度处理器,并在通信、自动化、电力电子等领域得到了广泛应用。电源行业也开始采用内部集成资源丰富的嵌入式控制器来构成大型开关电源的控制系统。将SAMSUNC公司的嵌入式ARM处理器S3C44BOX芯片,应用到开关电源的控制系统的设计中,采用C语言和少量汇编语言,就可以实现一种以嵌入式ARM处理器为核心、具有智能PID控制器以及触摸屏、液晶显示器等功能的开关电源控制系统。     系统硬件架构   随着数字电路和半导体工艺日趋完善成熟,数字信号、数字电路在应用中所占比例越来越大,同时显现出越来越多的优点:便
[电源管理]
基于<font color='red'>ARM</font>与PID算法的开关电源控制系统
ARM+PCL6045B的嵌入式运动控制器设计
   引 言   运动控制器是运动控制系统的核心部件。目前,国内的运动控制器大致可以分为3类:   第1类是以单片机等微处理器作为控制核心的运动控制器。这类运动控制器速度较慢、精度不高、成本相对较低,只能在一些低速运行和对轨迹要求不高的轮廓运动控制场合应用。   第2类是以专用芯片(ASIC)作为核心处理器的运动控制器,这类运动控制器结构比较简单,大多只能输出脉冲信号,工作于开环控制方式。由于这类控制器不能提供连续插补功能,也没有前馈功能,特别是对于大量的小线段连续运动的场合不能使用这类控制器。   第3类是基于PC总线的以DSP或FPGA作为核心处理器的开放式运动控制器。这类开放式运动控制器以DSP芯片作为运动控
[嵌入式]
助力释放物联网创新,Arm推出Arm Mbed Cordio协议栈
新闻摘要: · 符合蓝牙5.0标准的Mbed Cordio协议栈为超过35万家Mbed开发者生态系统带来全新功能 · 通过与Mbed OS操作系统预先集成,Arm可移动开源Cordio蓝牙5.0协议栈可加速物联网开发,带来更大灵活性 · 蓝牙5.0对实现物流业、互联建筑、智慧城市、零售等物联网(IoT)转型至关重要 Arm推出 Arm Mbed Cordio协议栈 ——全球首款开源、高可靠(fully-qualified)量产就绪低功耗蓝牙软件协议栈。凭借低功耗蓝牙的强大连接性,该产品可为开发人员开发全新物联网解决方案提供更大的灵活性。 低功耗蓝牙(BLE)正迅速成为包括智能照明、智慧城市和资产追踪
[物联网]
当C2000邂逅ARM......
  提及绿色环保,你能想到什么?太阳能?风能?智能电网?电动汽车?......这些应用究竟能够产生多大的效果,似乎大多数人就不明晰了。   对此,美国西北太平洋国家实验室为你算了一笔账:以2030年为例,当真正实现优化后,这些绿色应用能够帮美国剩下12.06%的能源,折成金钱约为534亿美元。也正是看到了如此美妙的前景,智能电机控制、可再生能源、智能电网、数字电源和电动汽车等绿色环保应用越来越流行。   协奏曲——Concerto   而以上的环保型应用对实时控制MCU有着很高的要求,只有这样才能执行精确、高效型功率转换所必需的复杂算法,而这正是高效电机控制、可再生能源和智能电网技术的基本要素。但是,要想将效率提升至可
[单片机]
基于ARM核的ADμC7O26硬件系统开发及其在医疗仪器中的应用
0 引言 随着人们生活水平的不断提高,人们对于自身健康的关注也提升到一个前所未有的高度。在今天,越来越多的高科技手段开始运用到医疗仪器的设计当中。心电图、脑电图等生理参数检测设备,各类型的监护仪器,超声波、X射线成影设备,核磁共振仪器,以及各式各样的物理治疗仪都开始在各地医院广泛使用,并且医学仪器正在向着组合式、多功能、智能化和微型化方向发展。现代的医学仪器一般都广泛采用了嵌入式微处理器来增强仪器的智能化程度,提高其稳定性和数据处理的精确性,使医学信号的采集、处理、通信一体化,并具有自诊断、自校验等一系列优点。其中ARM(Advanced RISC Machines)嵌入式微型主板作为中央处理模块,凭借自身体积小巧、功能强大、
[单片机]
基于<font color='red'>ARM</font>核的ADμC7O26硬件系统开发及其在医疗仪器中的应用
ARM Q1税前净利9400万美元 营收2.6亿美元
    ARM第一季销售攀高,优于分析师预期,主要因为它的图形和处理技术芯片需求增长。苹果iPhone与iPad均采用ARM芯片。ARM今天在财报中表示,3月止一季度营收攀升29%达1.703亿英镑(2.6亿美元)。税前净利达6170万英磅(约9400万美元),同比增长 31%。调整后税前利润8940万英镑(约合1.36亿美元),同比增长44%。一季度每股收益3.69便士,上年同期为2.71便士。     ARM称,新设计一季度需求强劲,本季度一半的授权来自溢价Cortex -A系列芯片技术。版税收入同比增长33%,高于半导体市场平均表现。   ARM执行长伊斯特(Warren East)任职近12年后,他于3月宣布今年7月1日
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved