"); //-->
我们的程序在哪里运行?
还记得我们在做“跑马灯”和“蜂鸣器”两个实验,用ads1.2中建立工程文件的时候有设置三个地址:
RO Base :0x40000000
RW Base :0x40001000
Image entry point :0x40000000
开始没有讲为什么,通过上面的系统存储器映射图解不知大家是否有所悟。LPC2136内部自带32KB RAM和256KB FLASH。
32KB RAM分布在整个CPU存储器空间的0x40000000~0x40007FFF;
256KB FLASH分布在整个CPU存储器空间的0x00000000~0x0003 FFFF;
RO Base是告诉编译系统把编译生成的目标码放在0x40000000起始的位置,也就是代码段存放在0x40000000开始的位置。
RW Base告诉编译系统把各种变量(常量放在RO开始的位置),堆栈放在0x40001000起始的位置。
Image entry point:是告诉编译系统程序入口点在0x40000000,即程序从这个地址开始执行。(此部分在附录二中细说)
Flash与RAM的区别
通过以上所说,好像FLASH在这里没什么用,如果你的RO地址定位在RAM中,那么FLASH确实没有用。但FLASH是必须的功能部件。
Flash的作用也许要从其与RAM的区别说起:
区别一:RAM是易失性存储器,Flash是非易失性存储器。通俗的说,存储在RAM中的数据掉电后数据丢失;而存储在FLASH中的数据掉电后任然保持。(必须通过工具或特殊命令来擦除)
区别二:RAM是可读写存储器,Flash只读存储器。(也许有人要问,Flash难道不能写吗?Flash可以写,但不能象RAM一样做简单赋值操作,必须通过Flash写命令写,而且写入数据的最小单位为512字节,即一个扇区)
区别三:RAM访问速度快,而Flash访问速度慢的多。
区别四:RAM价格昂贵,Flash便宜。
FLASH有何用途
我们一般在调试程序的时候为了提高开发进度,都把程序放在RAM中调试,在RAM中调试有一个缺陷就是每次上电必须下载程序到板子上,当产品的各个模块调试OK,产品就要实现脱机功能,即把程序烧写到FLASH中,这样就不需要每次上电加载程序。我们手中拿的手机,在开发阶段都是在RAM(SDRAM)中调试的,开发完成,要发布的时候就把程序烧到FLASH,这样我们开机有能运行FLASH的程序。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
2010全球电子峰会:National Semiconductor
奥的斯TOEC-40电梯控制电源电路(2)
语音芯片ISD 及其应用
直接在Keil下仿真的T9拼音输入法
语音信号处理
Microchip推出AVR SD系列入门级单片机(MCU),降低安全关键型应用的系统成本和复杂性
应用材料公司中国总部2025年3月乔迁新址
奥的斯TOEC-CHVF电梯控制电源电路
Proximus Global与诺基亚携手推出网络API,帮助开发人员创建企业级应用
Cadence利用NVIDIA Grace Blackwell加速AI驱动的工程设计和科学应用
急!!怎么也生成不了二进制格式的目标代码(*.bin)!
求教:cygwin下arm-elf 编译uclinux内核报错...
迅达300P电梯控制电源电路
2010全球电子峰会:Mentor Graphics
国防电子测试的最新发展及安捷伦解决方案
是德科技和Mavenir合作加速推进移动性及多用户MIMO测试
贸泽联手Micron推出全新电子书;带你探索面向AI边缘应用的创新内存解决方案与设计
奥的斯TOEC-2000VF电梯控制电源电路
奥的斯TOEC-60电梯控制电源电路
是德科技在宽禁带半导体裸片上实现动态测试
中国汽车工业协会到访英特尔,共探智能汽车发展
StrikerVR触觉VR枪Arena Infinity:先进触觉技术带来更真实的后坐力,提升VR沉浸感
2010全球电子峰会:Panel Discussion(下)
wu
R&S微波信号源分析与计量技术
语音压缩及IP网上话音(VoIP)技术
SmartFactory解决方案助力客户创新集成
用8515做的音乐演奏程序
4510b的bootloader程序起动疑问,请指点
请教minigui的问题