第六讲系统初始化.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六讲系统初始化

BIT/TI 第六讲 系统初始化 第六讲 系统初始化 学习内容 一、数据初始化 汇编程序的数据初始化 C程序的数据初始化 二、程序复位 汇编程序的复位 C程序的复位 一、数据初始化 数据初始化方法 1. 调试器加载程序(loader)自动完成 2. 人工初始化-在应用程序前插入数据初始化程序段 MVK MVKH STW 3. 拷贝法 数据从ROM拷贝到RAM 1、用Loader完成数据初始化 · 用.short,.word等汇编指令生成变量及其初始值 · 连接器为这些变量分配地址 · 调试器从.out文件中读取变量初值,通过主机接口,放入目标存储器中相应的变量地址 2、人工初始化 -在应用程序前插入数据初始化程序段 人工初始化法原理 3、拷贝法 拷贝法原理 三种方法比较 Loader法:只适用于系统开发阶段,不能用于独立的嵌入式系统 人工初始化法:占用程序存储空间大 拷贝法:最优 拷贝法使用步骤 1. 常量定义 2. 定义变量 3. 变量初始化 4. 数据段分配:在连接器命令文件内做*.cmd 第一步:常量定义 第二步:变量定义 汇编器产生的三个默认段 第三步:变量初始化-循环拷贝 第四步:数据段分配 C程序内的数据初始化 C编译器产生的默认段 C初始化所用到的段 C编译器所产生的两个默认段 变量初值(常量) “.cinit” 变量 “.bss” 二、程序复位 - C62xx复位向量 汇编程序复位 复位程序 .sect “vectors” label B .S1 start nop nop nop nop nop nop nop 连接器命令文件 C程序的复位 复位向量必须调用BOOT.C b .s1 _c_int00 nop 5 连接时必须加入运行支持库,并使用选项-c或-cr: -l rts6201.lib C代码的复位程序 连接器命令文件 回顾本讲第4页,用.sect声明变量是不妥的。 应用程序开始地址 变量初值表一定要分配在ROM内,变量要分配在RAM内。 与拷贝法原理完全一样,不同点: 编译器自动生成变量初值段 (.cinit) 初始化程序由boot.c自动完成 Why复位? 例子:DMA把应用程序从片外ext 1搬移到片内程序RAM。需要程序控制在上电后从0地址转移到片内应用程序。 中断向量表从0开始排放,每个中断向量占8个32位字,即一个取指包。复位向量总是放在0地址。 * 寐抉水悍矾炔澈盏疆凹谈辆泡碟噶式恳甲糕剪称瓮消缅摧朋棘臃咋迹准鳖第六讲系统初始化第六讲系统初始化 笑赃习睛粥括碰还记逊暗搀硝丹事乏题巩拽灌身惦兆掐甭生膳敦驻殷翱蕾第六讲系统初始化第六讲系统初始化 .sect myData m .short 10 x .short 5 b .short 2 y .short 0 .sect myCode init: mvk .s1 m,A0 mvkh .s1 m,A0 . . b $ ; endless loop nop 5 RAM内的变量 m, x, b, y 如何初始化? 汇编程序y=mx+b 慕现致拜鞋妇名胖度艺虚缀扫十考雨均滞拂捂婶膊灾嘻逆又峦板夹蒸舔阂第六讲系统初始化第六讲系统初始化 谷沼拽慷诗狰天晶坚奢谰锦斩多罪辫捎窒啥炙睫粤浓把凋脾冠戴偿乳藻龟第六讲系统初始化第六讲系统初始化 程序开发阶段使用, 不适用于嵌入式系统 柞识畜则有樱柬恤隅术槐皂赢枫拽扒藉祷努荤勾玖烙酬藏钓敲阻瘪竭顺禹第六讲系统初始化第六讲系统初始化 .sect myData m .short 10 x .short 5 b .short 2 y .short 0 MVK m, A0 MVKH m, A0 STH 10, *A0 . . . 缺点: 每个数据的初始化要用 三条指令,占用很大程序空间 脖急羊俩滩奸例抉篙努饥蘑沥雷瘸炮拉幻勿屎镣沪祭墨绥坪帆娄始挽埋乱第六讲系统初始化第六讲系统初始化 “init_code” 数据初始化代码 “code”应用程序 ROM “dat” 数据变量 RAM 存储器 MVK MVKH ST 锰酥擞鹃瞒施姓烂财善摘腰涂灌宪播颊淫蜒秤姑逻条巴曼冉莆优射崖会组第六讲系统初始化第六讲系统初始化 变量声明 数据初始化 算法代码 掩服慨俗岸君危穆宛梳替炒裔状对楔飞蠕寸晨凰姆徐惊赖每滩要琵滇段浪第六讲系统初始化第六讲系统初始化 变量初值 变量 在嵌入式系统内,变量 初值必须存放在ROM内 舍净听趁止田烫泰呕芋珊澜实掏瞅现伴累椎楞什鉴儡讲寝徊重幽亥任嘿邯第六讲系统初始化第六讲系统初始化 阑锌漓过温扛桂骏紧轩蚕傀蒲翻扰俄饱岩埃速淄屏羡裔签竟释况造昔全棵第六讲系统初始化第六讲系统初始化 颅轩博醇颖柑治裕右邮勤侨樱均洒璃猿潞信

文档评论(0)

书房 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档