1,编译器只有在最终的Link阶段才会为代码和数据分配内存地址,因此指定代码段的地址一般是通过写一个link脚本来进行的。Link阶段时,编译器的Linker会读取你写的Link脚本,并且按照脚本的规定隐凯伍给代码分配地址。
2,根据ARM开发工具的不同,link脚本的语法和形式也有所不孙悉同。ARM MDK,ARM ADS,Eclips+GCC,Linux GCC, ARM Realview等开发工具都支持Link脚本。
如果你英文还可以,建议你直接找到开发工具的Help手册去研究。如果你英语实在不行,灶或也可以把开发工具名称和你代码的具体情况告诉我,我帮你看看。
一般存放在Flash ROM中,有Nor flash和nand flash。ARM可以设置开机启动方式,从Nor 或nand flash启动。如果从Nor flash启动,一般是上电后运行地宏并址0处的代码。如果是nand flash ,flash接口会自动把nand flash最前面一小部分代码搬移到RAM中,然后蔽敏迹拿握运行。
Nor flash接在ARM 总线的0地址处,Nand flash 有专用的nand接口。
现在嵌入式的发展已经很好了,arm里面有内存!arm的存储结构有:歼圆友RAM区俗称内存,ROM区俗称氏槐程序存储器,还有有的arm还集成了EPROM非易失性存取器!这里边ROM区最大,然后是RAM区。举个通俗的例子吧,arm就好像一台计算机,ROM就是存储用户的程序的,一般烧写的代码都是存储到这里边的,类似于一台计算机的硬盘,RAM是arm用于计算和存储临时性文件,arm一失电就丢失了,类似于计算机中的内存!而EPROM则是存储一些信息,比如说变量的计算值啊,使其掉电后重新上电依然有效而不会丢失!
当然嵌入式上面的存储都很小,如果你想存储一些大文件,比如说MP3格式的文件,或者视频等很大的文件,arm上面肯定存储不下,一腔尘般都是通过存储到外部的存储器中如:SD卡等存储介质!然后通过文件系统从外部存储器读取数据然后在arm芯片进行处理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)