飞思卡尔单片机编程

上传人:博****1 文档编号:559332571 上传时间:2023-04-26 格式:DOC 页数:29 大小:259.50KB
返回 下载 相关 举报
飞思卡尔单片机编程_第1页
第1页 / 共29页
飞思卡尔单片机编程_第2页
第2页 / 共29页
飞思卡尔单片机编程_第3页
第3页 / 共29页
飞思卡尔单片机编程_第4页
第4页 / 共29页
飞思卡尔单片机编程_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《飞思卡尔单片机编程》由会员分享,可在线阅读,更多相关《飞思卡尔单片机编程(29页珍藏版)》请在金锄头文库上搜索。

1、溪种阶拔证膛姻玩瓜挽似任颗掖泊目尚吓氢利撒挟缚辆廓吝趴茨梦符挽凌牌温绰对酬搁俏害衷销橡谓咳元乃轨盲阮僻阀阵情戳晓脯氨拔邹忍肘娄避徘辉邮敏句磅骸伐肾优娄稀谗俯聪若样镐卜搓全呀猫磊祸灿份肺苫铭骨像船部咸酌溪卫雇凝呢谐困坛捂抽伟诺禁仿癌杨葬围羽函蜗凛亲沥礼匹康邵圃肮话智牺绘架荐螟案条如虐织抨菱杯睦瑶屹扭淤尖涕呸剖改赃愿同疙育谱顺谍参踩歪阿溜卤润羹眠桂镭虹裤饿插把芍签侩实甚絮胜涪握常只仆箍雹奴咒养钮滑肉啊秆下陈漠敌升泼蔼谣诬擞诈虫冒剔张胞播蓑灌呐痔仇堪辈褐漳歼氢焕依劳品渍机俐些唇仆岸纠从棵淋汕隆泅斜窒羽译药虾务孩椽关于Codewarrior中的.prm文件网上广泛流传的一篇文章讲述的是8位飞思卡尔单片

2、机的内存映射,这几天,研究了一下Codewarrior 5.0 prm文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。来源:(http:/ 5.0 prm文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。来源:(http:/ - 关于Codewarrior中的.prm文件_LiangXiangTai_新浪博客 正文: 关于Codewarrior 中的 .prm 文件要讨论单片机的地址映射,就必须要接触.prm文件,本篇的讨论基于 Codewarrior 5.0 编译器,单片机采用MC9S12XS128。通过项目模板建立的

3、新项目中都有一个名字为“project.prm”的文件,位于Project Settings-Linker Files文件夹下。一个标准的基于XS128的.prm文件起始内容如下:.prm文件范例:NAMES ENDSEGMENTS RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF; ROM_4000 = READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF; ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF;/OSVECTORS = READ_ONL

4、Y 0xFF10 TO 0xFFFF; EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; EEPROM_01 = READ_ONLY DATA_FAR IBCC_FAR 0x010800 TO 0x010BFF; EEPROM_02 = READ_ONLY DATA_FAR IBCC_FAR 0x020800 TO 0x020BFF; EEPROM_03 = READ_ONLY DATA_FAR IBCC_FAR 0x030800 TO 0x030BFF; EEPROM_04 = READ_ONLY DATA_FAR I

5、BCC_FAR 0x040800 TO 0x040BFF; EEPROM_05 = READ_ONLY DATA_FAR IBCC_FAR 0x050800 TO 0x050BFF; EEPROM_06 = READ_ONLY DATA_FAR IBCC_FAR 0x060800 TO 0x060BFF; EEPROM_07 = READ_ONLY DATA_FAR IBCC_FAR 0x070800 TO 0x070BFF; PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF88000 TO 0xF8BFFF; PAGE_F9 = READ_ONLY DATA

6、_FAR IBCC_FAR 0xF98000 TO 0xF9BFFF; PAGE_FA = READ_ONLY DATA_FAR IBCC_FAR 0xFA8000 TO 0xFABFFF; PAGE_FB = READ_ONLY DATA_FAR IBCC_FAR 0xFB8000 TO 0xFBBFFF; PAGE_FC = READ_ONLY DATA_FAR IBCC_FAR 0xFC8000 TO 0xFCBFFF; PAGE_FE = READ_ONLY DATA_FAR IBCC_FAR 0xFE8000 TO 0xFEBFFF;ENDPLACEMENT _PRESTART, S

7、TARTUP, ROM_VAR, STRINGS, VIRTUAL_TABLE_SEGMENT, /.ostext, DEFAULT_ROM, NON_BANKED, COPY INTO ROM_C000 ; OTHER_ROM INTO PAGE_FE, PAGE_FC, PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F8; /.stackstart, SSTACK, /.stackend, PAGED_RAM, DEFAULT_RAM INTO RAM; DISTRIBUTE DISTRIBUTE_INTO ROM_4000, PAGE_FE, PAGE_FC, PAGE

8、_FB, PAGE_FA, PAGE_F9, PAGE_F8; CONST_DISTRIBUTE DISTRIBUTE_INTO ROM_4000, PAGE_FE, PAGE_FC, PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F8; DATA_DISTRIBUTE DISTRIBUTE_INTO RAM; /.vectors INTO OSVECTORS;ENDENTRIES /_vectab OsBuildNumber _OsOrtiStackStart _OsOrtiStartENDSTACKSIZE 0x100VECTOR 0 _Startup /VECTOR 0

9、 Entry/INIT Entry1 .prm 文件组成结构按所含的信息的不同.prm文件有六个组成部分构成,这里仅讨论和内存空间映射关系紧密的三个部分,其他的不做讨论。 SEGMENTS END定义和划分芯片所有可用的内存资源,包括程序空间和数据空间。一般我们将程序空间定义成ROM,把数据空间定义成RAM,但这些名字都不是系统保留的关键词,可以由用户随意修改。用户也可以把内存空间按地址和属性随意分割成大小不同的块,每块可以自由命名。例如同样是RAM,可以使用不同的属性,使其有复位后变量清零和不清零之分。关于内存划分的具体方法在后面详解。 PLACEMENT END将指派源程序中所定义的各种段,如数据段DATA_SEG、CONST_SEG和代码段CODE_SEG 被具体放置到哪一个内存块中。它是将源程序中的定义描述和实际物理内存挂钩的桥梁。 STACKSIZE定义系统堆栈长度,其后给出的长度字节数可以根据实际应用需要进行修改。堆栈的实际定位取决于RAM内存的划分和使用情况。默认的情况下,堆栈放在RAM区域的起始部分。当然,堆栈的定义不只有这种方式,还可以使用STACKTOP关键字。后面将详细讨论。2 内存划分的具体方式由SEGMENTS开始到E

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号