初始化包括下面这些操作序列。
(1)将处理器模式切换到特权模式,禁止中断,并检测MMU是否存在。如果MMU存在,则可以在处理器特权模式下配置它。
(2)根据编译时生成的地址值,Angel确定应用程序运行时的位置及异常中断向量的位置。
(3)将Angel的代码段及数据段复制到运行时的地址空间。
(4)如果应用程序需要运行,则将其也复制到它的运行时地址空间。
(5)设置各种处理器模式下的数据栈。Angel将维护它独立的特权模式下的数据栈,用户可以配置Angel的数据栈位置。
(6)设置目标系统中特有的部件,如MMU及Profiling时钟。
(7)建立Angel的任务串行器。
(8)将处理器模式切换到用户模式,进行高层次的初始化操作,初始化C语言运行时库及Angel的C函数。
对于完整版本的Angel及版本的Angel,从这一步开始,初始化操作有所不同。对于完整版本的Angel,进行如下的操作。
·建立基于ADP的通信通道。
·如果应用程序需要使用其他的通道,则可以建立单纯的数据通道(raw data channel)。
·将引导信息发送到主机上的调试器,并等待调试器的回应。
对于版本的Angel,进行如下的操作。
·设置设备驱动程序,建立单纯的数据通道(raw dATA channel)。
·跳转到程序入口点_entry。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。