




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验目的进一步熟悉ADS开发环境 并能进行相关设置熟悉裸机系统下C语言运行环境的设置方法 掌握ADS下C语言程序的编辑 编译 链接及下载方法掌握ADS下C程序代码的调试及内存值的检查方法 实验内容1 编写裸机系统最基本的初始化汇编语言程序 2 编写为C语言程序建立运行环境的汇编语言程序 3 编写C语言程序 实现2440裸机内运行1到100的加法 并通过调试工具查看内存值 嵌入式裸机系统实验说明 一个嵌入式裸机系统开机时必须首先要对程序中用到的硬件功能单元进行初始化程序设置 否则相关功能单元将处于一种未知工作状态 甚至无法正常工作状态 无论何种应用 最基本的初始化功能单元是存储器控制器单元和时钟产生功能单元 S3C2440存储器控制功能单元针对8个存储区BANK共有13个初始化设置寄存器 地址位于特殊功能寄存器区起始位置 S3C2440时钟产生功能单元在常规工作方式下 针对Fclk Hclk Pclk Uclk时钟的产生 有4个基本寄存器需要初始化设置 一 嵌入式裸机系统的存储器初始化设置 13个存储器控制功能单元初始化设置寄存器 地址位于特殊功能寄存器区起始位置 本实验箱仅BANK0配置了32MBNORFLASH BANK6配置了64MBSDRAM 待设置的存储器参数表达方式 1 待设置的BWSCON寄存器参数表达DW16EQU 0 x1 DW32EQU 0 x2 B1 BWSCONEQU DW16 AMDflash AM29LV160DB 16 bit fornCS1B2 BWSCONEQU DW16 PCMCIA PD6710 16 bitB3 BWSCONEQU DW16 Ethernet CS8900 16 bitB4 BWSCONEQU DW32 IntelStrata 28F128 32 bit fornCS4B5 BWSCONEQU DW16 A400 A410Ext 16 bitB6 BWSCONEQU DW32 SDRAM K4S561632C 32MBx2 32 bitB7 BWSCONEQU DW32 N C DCD 0 B1 BWSCON 4 B2 BWSCON 8 B3 BWSCON 12 B4 BWSCON 16 B5 BWSCON 20 B6 BWSCON 24 B7 BWSCON 28 本实验箱有效的存储器设置参数 DW16EQU 0 x1 DW32EQU 0 x2 单独定义BANK1 7的数据宽度BWSCON寄存器参数B1 BWSCONEQU DW16 0 x01 选择BANK1的数据宽度为16 bitB2 BWSCONEQU DW16 0 x01 选择BANK2的数据宽度为16 bitB3 BWSCONEQU DW16 0 x01 选择BANK3的数据宽度为16 bitB4 BWSCONEQU DW32 0 x02 选择BANK4的数据宽度为32 bitB5 BWSCONEQU DW16 0 x01 A400 A410Ext 16 bitB6 BWSCONEQU DW32 0 x02 选择BANK6为32 bit 64MBSDRAM B7 BWSCONEQU DW32 0 x02 N C 无用 将上面单独定义的BANK1 BANK7参数整合到BWSCON寄存器内对应位域 DCD 0 B1 BWSCON 4 B2 BWSCON 8 B3 BWSCON 12 B4 BWSCON 16 B5 BWSCON 20 B6 BWSCON 24 B7 BWSCON 28 B4 BWSCON左移16位 B1 BWSCON 0 x1 B4 BWSCON 0 x2 BWSCON寄存器 D0 D31 本实验箱有效的存储器设置参数 DW16EQU 0 x1 DW32EQU 0 x2 单独定义BANK1 7的数据宽度BWSCON寄存器参数B1 BWSCONEQU DW16 B2 BWSCONEQU DW16 B3 BWSCONEQU DW16 B4 BWSCONEQU DW32 B5 BWSCONEQU DW16 B6 BWSCONEQU DW32 B7 BWSCONEQU DW32 0 B1 BWSCON 4 B2 BWSCON 8 B3 BWSCON 12 B4 BWSCON 16 B5 BWSCON 20 B6 BWSCON 24 B7 BWSCON 28 BWSCON寄存器 B1 BWSCON左移4位B2 BWSCON左移8位B3 BWSCON左移12位B4 BWSCON左移16位B5 BWSCON左移20位B6 BWSCON左移24位B7 BWSCON左移28位 待设置的存储器参数表达方式 2 待设置的BANKCON0 BANKCON5寄存器参数表达 单独定义BANKCON0寄存器各参数B0 TacsEQU0 x3 0clkB0 TcosEQU0 x3 0clkB0 TaccEQU0 x7 14clkB0 TcohEQU0 x3 0clkB0 TahEQU0 x3 0clkB0 TacpEQU0 x1B0 PMCEQU0 x0 normal 将以上单独表达的各参数整合为32位字数据 以备写入BANKCON0寄存器之用 DCD B0 Tacs 13 B0 Tcos 11 B0 Tacc 8 B0 Tcoh 6 B0 Tah 4 B0 Tacp 2 B0 PMC BANKCON1 BANKCON5寄存器参数表达与以上BANKCON0相同 BANKCON0寄存器位定义 待设置的存储器参数表达方式 3 待设置的BANKCON6寄存器参数表达 单独定义BANKCON6寄存器各参数B6 MTEQU0 x3 SDRAMB6 TrcdEQU0 x1 3clkB6 SCANEQU0 x1 9bit 将以上单独表达的各参数整合为32位字数据 以备写入BANKCON6寄存器之用 DCD B6 MT1463 将以上单独表达的各参数整合为32位字数据 以备写入REFRESH寄存器之用 DCD REFEN 23 TREFMD 22 Trp 20 Tsrc 18 Tchr 16 REFCNT 本实验所需的存储器参数预定义 符号化表示 DW16EQU 0 x1 DW32EQU 0 x2 B1 BWSCONEQU DW16 AMDflash AM29LV160DB 16 bit fornCS1B2 BWSCONEQU DW16 PCMCIA PD6710 16 bitB3 BWSCONEQU DW16 Ethernet CS8900 16 bitB4 BWSCONEQU DW32 IntelStrata 28F128 32 bit fornCS4B5 BWSCONEQU DW16 A400 A410Ext 16 bitB6 BWSCONEQU DW32 SDRAM K4S561632C 32MBx2 32 bitB7 BWSCONEQU DW32 N C B0 TacsEQU0 x3 0clkB0 TcosEQU0 x3 0clkB0 TaccEQU0 x7 14clkB0 TcohEQU0 x3 0clkB0 TahEQU0 x3 0clkB0 TacpEQU0 x1B0 PMCEQU0 x0 normalB6 MTEQU0 x3 SDRAMB6 TrcdEQU0 x1 3clkB6 SCANEQU0 x1 9bitREFENEQU0 x1 RefreshenableTREFMDEQU0 x0 CBR CASbeforeRAS AutorefreshTrpEQU0 x1 3clkTsrcEQU0 x1 5clkTrc Trp 3 Tsrc 5 8clockTchrEQU0 x2 3clkREFCNTEQU1268 HCLK 105Mhz 2048 1 7 81 100 75M 1463 BWSCON寄存器参数 BANKCON0寄存器参数 BANKCON6寄存器参数 REFRESH寄存器参数 将独立表达的存储器参数整合为与各寄存器格式一致的字 预存的13个存储器初始化设置参数区 用于设置存储器数据宽度及SDRAM参数SMRDATA 参数区起始地址 开机后逐个拷贝到处理器特殊功能寄存器内存储器控制单元寄存器区DCD 0 B1 BWSCON 4 B2 BWSCON 8 B3 BWSCON 12 B4 BWSCON 16 B5 BWSCON 20 B6 BWSCON 24 B7 BWSCON 28 BWSCON寄存器参数DCD B0 Tacs 13 B0 Tcos 11 B0 Tacc 8 B0 Tcoh 6 B0 Tah 4 B0 Tacp 2 B0 PMC BANKCON0寄存器参数DCD B1 Tacs 13 B1 Tcos 11 B1 Tacc 8 B1 Tcoh 6 B1 Tah 4 B1 Tacp 2 B1 PMC BANKCON1寄存器参数DCD B2 Tacs 13 B2 Tcos 11 B2 Tacc 8 B2 Tcoh 6 B2 Tah 4 B2 Tacp 2 B2 PMC BANKCON2寄存器参数DCD B3 Tacs 13 B3 Tcos 11 B3 Tacc 8 B3 Tcoh 6 B3 Tah 4 B3 Tacp 2 B3 PMC BANKCON3寄存器参数DCD B4 Tacs 13 B4 Tcos 11 B4 Tacc 8 B4 Tcoh 6 B4 Tah 4 B4 Tacp 2 B4 PMC BANKCON4寄存器参数DCD B5 Tacs 13 B5 Tcos 11 B5 Tacc 8 B5 Tcoh 6 B5 Tah 4 B5 Tacp 2 B5 PMC BANKCON5寄存器参数DCD B6 MT 15 B6 Trcd 2 B6 SCAN BANKCON6寄存器参数DCD B7 MT 15 B7 Trcd 2 B7 SCAN BANKCON7寄存器参数DCD REFEN 23 TREFMD 22 Trp 20 Tsrc 18 Tchr 16 REFCNT REFRESH寄存器参数DCD0 x32 BANKSIZE寄存器参数DCD0 x30 MRSRB6寄存器参数DCD0 x30 MRSRB7寄存器参数 初始化设置存储器参数的程序片断 adrlr0 SMRDATA 取参数区起始地址ldrr1 pBWSCON 取特殊功能寄存器区起始地址addr2 r0 52 13个字单元 4 13 520ldrr3 r0 4 逐个读出参数strr3 r1 4 逐个写入各寄存器cmpr2 r0 13个参数写完 bne B0 No 后向转移到0 SMRDATA pBWSCON 0 x00000000 针对产生Fclk Hclk Pclk Uclk时钟所需的4个基本初始化设置寄存器 初始化程序中的口地址及设置值符号化定义 pLOCKTIMEEQU0 x4c000000 锁定时间计数值寄存器地址pCLKDIVNEQU0 x4c000014 时钟控制寄存器地址pUPLLCONEQU0 x4c000008 pMPLLCONEQU0 x4c000004vCLKDIVNEQU0 x5vUPLLCONEQU0 x00038022vMPLLCONEQU0 x0005c011vU MDIVEQU56 Fin 12 0MHzFout 48MHzvU PDIVEQU2初始化程序片段请参见教材P 241编程例 二 嵌入式裸机系统的时钟初始化设置 C语言程序需要在内存构造RO RW ZI三个段 区 RO为代码段区 RW为已经初始化的全局变量 数据 区 ZI为未初始化全局变量区 全0数据区 0X30000000 0X30002000 0X30004000 8K 8K 8K 三 嵌入式裸机系统C语言运行环境设置 嵌入式裸机系统实验说明 编译器使用下列分段参数设置C语言程序在裸机系统内的各段起始地址和结束地址 RO段起始地址 Image RO Base 代码段起始地址 0X30000000RO段结束地址加1 Image RO Limit RW段起始地址 Image RW Base 数据段起始地址 0X30002000RW段结束地址加1 Image RW Limit ZI段起始地址 Image ZI Base 0数据段起始地址 0X30004000ZI段结束地址加1 Image ZI Limit 嵌入式裸机系统实验说明 这些用于将目标程序下载到内存区域的指定地址值由编程员在编译过程中设定 如编译软件中对ro base和rw base的设定 1 新建工程及AXD设置请参照上一次实验操作 2 需要下列语句初始化C语言运行环境 IMPORT Image RO Base IMPORT Image RO Limit IMPORT Image RW Base IMPORT Image ZI Base IMPORT Image ZI Limit 说明 在输入语句前需要先键入TAB键值 此处的声明由工程配置完成 实验参考程序 裸机系统下必须先用采用汇编代码初始化C程序的运行环境 然后进入C程序代码 IMPORT Image RO Limit IMPORT Image RW Base IMPORT Image ZI Base IMPORT Image ZI Limit IMPORTMain 声明C程序中的Main 函数AREAStart CODE READONLY 声明代码段StartENTRY 标识程序入口CODE32 声明32位ARM指令Reset 开机 复位异常处理程序 初始化C程序的运行环境LDRSP 0 x40003F00 建立系统堆栈LDRR0 Image RO Limit 接受输入的代码段存储空间LDRR1 Image RW Base 接受输入的数据区起始地址LDRR3 Image ZI Base 接受输入的0数据区起始地址CMPR0 R1 代码区末尾地址 1 数据区起始地址 BEQLOOP1LOOP0CMPR1 R3LDRCCR2 R0 4 小于则执行LDRSTRCCR2 R1 4BCCLOOP0LOOP1LDRR1 Image ZI Limit MOVR2 0LOOP2CMPR3 R1STRCCR2 R3 4BCCLOOP2BMain 跳转到C程序代码Main 函数END 说明 键入IMPORT前需要先按TAB键 实验参考程序 C语言实验参考程序 defineuint8unsignedchar defineuint32unsignedint defineN100uint32sum 使用加法运算来计算1 2 3 N 1 N的值 N 0 voidMain void uint32i sum 0 for i 0 i N i sum i while 1 0 x20005000 当程序中向端口地址0X20005000输出数据 就会打开锁存器输出端 点亮LED 该输出接LED驱动器74VCH273输出允许CLK 驱动LED发光 实验程序流程框图 建立异常向量表 程序从0X0开始 预存存储器参数 关闭看门狗定时器 关闭所有中断 设置系统时钟 将存储器参数写入处理器特殊功能寄存器区内的存储器参数区 循环右移LED数据 向LED口地址写入LED数据 延时程序 复位异常程序 裸机初始化 设置静态参数 主应用程序 裸机系统基本程序运行环境设置参数及程序 此部分只能采用汇编程序 此部分可以采用汇编程序也可以采用C语言程序 建立异常向量表 程序从0X0开始 预存存储器参数 关闭看门狗定时器 关闭所有中断 设置系统时钟 将存储器参数写入处理器特殊功能寄存器区内的存储器参数区 ResetEntryb reset 跳转到复位处理程序b 为未定义指令异常预留b 为软中断异常预留b 为指令预取中止异常预留b 为数据访问中止异常预留b ARM公司保留b 为IRQ中断预留b 为FIQ中断预留 准备向特殊功能寄存器区13个存储器设置寄存器写入的参数 建立异常向量表 程序从0X0开始 预存存储器参数 关闭看门狗定时器 关闭所有中断 设置系统时钟 将存储器参数写入处理器特殊功能寄存器区内的存储器参数区 存储器数据宽度 SDRAM参数设置 包括数据宽度 刷新模式和频率 SMRDATADCD 0 B1 BWSCON 4 B2 BWSCON 8 B3 BWSCON 12 B4 BWSCON 16 B5 BWSCON 20 B6 BWSCON 24 B7 BWSCON 28 BWSCON寄存器参数DCD B0 Tacs 13 B0 Tcos 11 B0 Tacc 8 B0 Tcoh 6 B0 Tah 4 B0 Tacp 2 B0 PMC BANKCON0寄存器参数DCD B1 Tacs 13 B1 Tcos 11 B1 Tacc 8 B1 Tcoh 6 B1 Tah 4 B1 Tacp 2 B1 PMC BANKCON1寄存器参数DCD B2 Tacs 13 B2 Tcos 11 B2 Tacc 8 B2 Tcoh 6 B2 Tah 4 B2 Tacp 2 B2 PMC BANKCON2寄存器参数DCD B3 Tacs 13 B3 Tcos 11 B3 Tacc 8 B3 Tcoh 6 B3 Tah 4 B3 Tacp 2 B3 PMC BANKCON3寄存器参数DCD B4 Tacs 13 B4 Tcos 11 B4 Tacc 8 B4 Tcoh 6 B4 Tah 4 B4 Tacp 2 B4 PMC BANKCON4寄存器参数DCD B5 Tacs 13 B5 Tcos 11 B5 Tacc 8 B5 Tcoh 6 B5 Tah 4 B5 Tacp 2 B5 PMC BANKCON5寄存器参数DCD B6 MT 15 B6 Trcd 2 B6 SCAN BANKCON6寄存器参数DCD B7 MT 15 B7 Trcd 2 B7 SCAN BANKCON7寄存器参数DCD REFEN 23 TREFMD 22 Trp 20 Tsrc 18 Tchr 16 REFCNT REFRESH寄存器参数DCD0 x32 SCLKpowersavingmode BANKSIZE128M 128M BANKSIZE参数DCD0 x30 MRSR6CL 3clk MRSRB6寄存器DCD0 x30 MRSR7CL 3clk MRSRB7寄存器 复位异常处理程序 建立异常向量表 程序从0X0开始 预存存储器参数 关闭看门狗定时器 关闭所有中断 设置系统时钟 将存储器参数写入处理器特殊功能寄存器区内的存储器参数区 resetldrr0 pWTCONldrr1 0 x0strr1 r0 ldrr0 pINTMSKldrr1 0 xffffffffstrr1 r0 复位异常处理程序 建立异常向量表 程序从0X0开始 预存存储器参数 关闭看门狗定时器 关闭所有中断 设置系统时钟 将存储器参数写入处理器特殊功能寄存器区内的存储器参数区 ldrr0 pLOCKTIMEldrr1 0 xffffffffstrr1 r0 ldrr0 pCLKDIVNldrr1 vCLKDIVN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京印刷学院印刷产业市场拓展合作框架合同
- 离婚协议中关于共同债务清偿及信用修复补充条款
- 建筑方案设计人员组成包括
- 2025年机械入职笔试题及答案
- 双重预防体系培训考试题及答案
- 现场文明施工、防止施工扰民措施、环保和保卫方案
- 岗位危险源及控制措施考试及答案
- 咨询项目招标代理方案
- 建筑台阶处理方案设计说明
- 茶社建筑方案设计图纸大全
- 家政服务企业社会责任报告样本
- 2022年及往年真题六西格玛绿带复习题及答案
- 安静的力量-高一主题班会
- 血小板活化与流式细胞仪分析
- 发行公司债法律意见书正文
- 部编人教版五年级上册道德与法治全册课件
- 高血压护理查房ppt
- 全关节镜下FiberTape治疗后交叉韧带胫骨止点撕脱骨折课件
- 有限元和有限差分法基础超详细版本
- 《临建布置方案》word版
- 疑似预防接种异常反应(AEFI)监测与处理PPT课件
评论
0/150
提交评论