它在系统复位时执行,完成系统必须初始化操作.对于具有局部存储器的内核, 如C ach e s, 紧密耦合存储器(TC M), 存储管理单元(M M U) 和存储器保护单元(MPU)等, 在初始化过程这一阶段完成必要的配置. 复位处理程序在执行之后, 通常跳转到__main处开始C库的初始化序列. 一般情况下, 系统初始化代码和主Р4. 映象文件存储器映射调整映像由域(R e g i o n s)和输出段(Output Sections)组成. 每个域有不同的加载地址和执行地址. 分散加载可以更加方便准确的指定Р在$Sub$$main(void)函数中, 链接Р程序通过调用$S u p e r$$m a i n(), 是代码跳转到实际的main()函数.Р应用程序是分开的. 系统初始化要在主应用程序启动前完成. 但部分与硬件相映像存储器映射, 为映像组件分组和布局提供了全面控制. 它能够描述由载入时和执行时分散在存储器映射中的多个区组成的复杂映像映射. 虽然, 分散加载可以用于简单映像, 但它通常仅用于具有复杂存储器映射的映像. 要构建映像的存储器映射, 必须向分组信息决定如何将各输入段组织成相应的输出段和域; 定位信息决定每个域在存储空间的起始地址.Р完成硬件初始化之后,必须考应用程序运行在特权模式(P r i v i l e g e d m o d e) 只需在退出, 复位处理程序前切换到适当的模式;如果应用程序运行在用户模式下,要在完成系统初始化之后,再切换到用户模式.模式的切换工作,一般在$Sub$$main(void)函数中完成.Р虑主应用程序运行在何种模式.如果Рarmlink提供以下信息:Р●Р●Р有两种方法可以实现指定映像文件的Р图2ARM嵌入式系统的初始化序列РInformation QuarterlyР[23]РNumber 6, Spring 2007