ADS开发工具的基本使用_第1页
ADS开发工具的基本使用_第2页
ADS开发工具的基本使用_第3页
ADS开发工具的基本使用_第4页
ADS开发工具的基本使用_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1ADS开发工具的基本使用开发工具链安装:ADS与Jlink

第1页/共38页ADS:ARMDeveloperSuite常用ARM开发工具(Windows平台)ARMSDT(ARMSoftwareDevelopmentKit)ARMDeveloperSuite(V1.2)KeiluVision(MDK)(V3.24)IAREmbeddedWorkBench(V5.20)RealViewDeveloperSuite(RVDS)ADS组成部分集成开发环境(CodeWarriorIDEfromMetrowerks)调试器(Debuggers):AXD、armsd代码生成工具(CodeGenerationTools)指令集模拟器(InstructionSetSimulators)ARM应用库(ARMApplicationsLibrary)ARM开发包(ARMFirmwareSuite)第2页/共38页ADS安装-StepbyStepStep1:双击Setup.exe第3页/共38页ADS安装-StepbyStepStep2:一路Next,程序开始安装Step3:直到安装完毕第4页/共38页ADS安装-StepbyStepStep3:跳出ARMLisenceWinzard,点击下一步第5页/共38页ADS安装-StepbyStepStep3:选择InstallLisence,点击下一步第6页/共38页ADS安装-StepbyStepStep4:填入你的Code,点击下一步第7页/共38页ADS安装-StepbyStepStep5:点击下一步,直至完成第8页/共38页ADS安装-StepbyStepStep6:在程序安装主界面点击“Finish”,完成安装第9页/共38页CodeWarrior用户界面第10页/共38页J-Link安装点击“Setup_JLinkARM_V400.exe”,一路Next,直至安装完成第11页/共38页开发工具链安装:配置开发环境

第12页/共38页配置AXD调试器正确连接开发板电源,并用Jlink将PC的USB接口与开发板的20PinJTAG接口正确连接,将开发板上电点击“开始”->所有程序->ARMDeveloperSuitev1.2 ->AXDDebugger,打开AXD调试器第13页/共38页配置AXD调试器点击“Options”->ConfigureTarget…点击“ADD”,在弹出的文件选择框中选择JlinkRDI.dll路径:C:\ProgramFiles\SEGGER\JLinkARM_V400\JlinkRDI.dll第14页/共38页配置AXD调试器点击OK,结束配置第15页/共38页配置AXD调试器验证AXD配置在AXD的Memory窗口输入0x10001000地址并回车,如果看到相似数据,则表明AXD配置成功,仿真器可以正确识别开发板上的CPU如果在AXD的界面中看不到Memory窗口,请点击ProcessorViews->Memory第16页/共38页开发一个简单的ADS工程:GPIO控制LED

第17页/共38页入门:新建一个工程在D盘新建目录LED,并从Sample代码中拷贝boot、include、misc文件夹及int_vec_handler.c文件到LED目录Step1:建立工程目录,并拷贝必要文件第18页/共38页入门:新建一个工程打开CodeWarrior,File->New…选择Project标签在Projectname内填入工程名在Location内填入路径点击“确定”注意:无论工程名还是路径,都不要出现中文、空格等Step1:建立新的工程第19页/共38页入门:新建一个工程Step2:向新工程内添加刚才拷贝的文件:注意:使用鼠标拖拽LED_DATA及LED.mcp不要添加进去第20页/共38页入门:新建一个工程Step3:在跳出的对话框中选“OK”,完成文件添加:第21页/共38页入门:新建一个工程Step4:添加Main.c文件:File->new…选择File选项卡输入文件名:main.c勾选“AddtoProject”,并选择当前工程LED.mcp依次勾选Targets内的选项第22页/共38页入门:新建一个工程Step5:完成自己的main函数在打开的main.c文件中输入以下内容#include <stdio.h>#include "ub4020evb.h"#include "intc.h"intmain(){ while(1); return0;}第23页/共38页入门:新建一个工程Step6:尝试编译:Project->make根据错误提示,删除misc文件夹下的“pmu.c”修改int_vec_handler.c,将vector数组的handler全部替换为NULL,并去掉不需要的头文件,仅保留intc.h和studio.h再次编译,已经去掉所有Error第24页/共38页入门:新建一个工程Step7:更改工程设置Edit->DebugrelSetting…languageSetting:将ARMAssembler等选项的TargetandSource选项卡中的“ArchitectureofProcessor”选项均设为“ARM720T”第25页/共38页入门:新建一个工程Step8:更改工程设置Edit->DebugrelSetting…ARMLinker:

OutPut:Linkertype-Simple,ROBase-0x04000000

Options:Imageentrypoint-0x04000000

Layout:

Placeatbeginningofimage Object/Symbol-boot_gfd.o

Section-BOOT至此,我们已经成功建立了一个空白工程,并可以在Main函数中添加自己的功能代码,下面我们将一步步实现LED的控制。

第26页/共38页GPIO_PORTE_DIR:0=1控制一个LED-GPIO控制原理OUTINPin93SMCGPIOSMC_DAT0GPIO_PORTE:0GPIO_PORTE_SEL:0=1GPIO_PORTE_DIR:0=0GPIO_PORTE_SEL:0=0第27页/共38页控制一个LED-添加功能代码在main函数添加以下代码*(RP)GPIO_PORTE_SEL|=0x01;//选择Pin93为GPIO功能*(RP)GPIO_PORTE_DIR&=~0x01;//设置该管脚为输出*(RP)GPIO_PORTE_DATA|=0x1;//拉高管脚,点亮LED*(RP)GPIO_PORTE_DATA&=~0x1;//拉低管脚,熄灭LED编译并在DEBUG模式下单步运行,观察LED0Project->makeProject->debug加入循环与闪烁第28页/共38页控制一个LED-完善程序,加入循环与闪烁最终的main函数intmain(){ inti; *(RP)GPIO_PORTE_SEL|=0x01F;//选择Pin93为GPIO功能 *(RP)GPIO_PORTE_DIR&=~0x01;//设置该管脚为输出

while(1) { *(RP)GPIO_PORTE_DATA|=0x1;//拉高管脚,点亮LED for(i=0;i<0x400000;i++); *(RP)GPIO_PORTE_DATA&=~0x1;//拉低管脚,熄灭LED for(i=0;i<0x400000;i++); } return0;}第29页/共38页进阶工程:中断处理

第30页/共38页中断服务程序-以RTC的秒中断为例中断的概念中断时发生了什么?ARM内核处理中断的流程、中断向量的概念中断信号中断控制器INTC中断使能中断屏蔽RTCIRQARM720TCPSRi第31页/共38页中断处理流程0x0000001C:BFIQHandler0x00000018:BIRQHandler0x00000014:B.0x00000010:BDataAbort0x0000000C:BPrefetchAbort0x00000008:BSoftWareInterrupt0x00000004:BUndefinedInstruction0x00000000:BResetHandler中断向量表PCIRQ_Handler保护现场恢复现场中断返回底层汇编Int_gfd.s函数调用C语言处理int_vector_handler.c判断中断号intnum=*(RP)(INTC_IFSR);while(intnum!=1){

intnum=intnum>>1;

i++;}调用中断服务程序(*vector[i].handler)();第32页/共38页中断服务程序INT_VECTORvector[]={

{INTSRC_NULL, NULL},

{INTSRC_EXINT0, NULL},

{INTSRC_EXINT1, NULL},

{INTSRC_EXINT2, NULL},

{INTSRC_EXINT3, NULL},

{INTSRC_EXINT4, NULL},{INTSRC_EXINT5,

NULL},{INTSRC_EXINT6, NULL},{INTSRC_EXINT7, NULL},{INTSRC_EXINT8, NULL},{INTSRC_EXINT9, NULL},{INTSRC_EXINT10, NULL},{INTSRC_SDIO, NULL},{INTSRC_SMC1, NULL},{INTSRC_SMC0, NULL},{INTSRC_USB, NULL},{INTSRC_NULL, NULL},{INTSRC_SSI, NULL},{INTSRC_I2S, NULL},{INTSRC_LCDC, NULL},{INTSRC_PWM, NULL},{INTSRC_UART3, NULL},{INTSRC_UART2, NULL},{INTSRC_UART1, NULL},{INTSRC_UART0, NULL},{INTSRC_TIMER3, NULL},{INTSRC_TIMER2, NULL},{INTSRC_TIMER1, NULL},{INTSRC_MAC, NULL},{INTSRC_EMI, NULL},{INTSRC_DMAC, NULL},{INTSRC_RTC, RTCIntHandler},};typedef

struct

int_vector{

U8

IntNum;

void (*handler)(void);}INT_VECTOR;第33页/共38页SEP4020地址空间分配CSFCSE(SDRAM)CSB、CSC、CSDCSA(NorFlash)IOESRAM0x040000000x100000000x200000000x30000000MACLCDCDMAEMIGPIO……PMCINTCNand_Data(0x11000200)第34页/共38页中断服务程序-以RTC的秒中断为例涉及的Memory空间ESRAM:0x04000000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论