eCos系统启动流程 张龙 2010-9-24 通过调研,总结了eCos系统的启动流程,我认为可以分为以下两大步: 1
HAL 的启动; 2
一.HAL的启动 HAL 是对硬件进行初始化操作, 当然跟硬件平台有关,不过大致流程是相似的,这里以基于 PC 的硬件平台为例,图 1
1 是 HAL 的启动流程图
Hardware PowerupReset_vector_startHal_cpu_initHal_hardware_initSetup interrupt stackHal_mon_initClear bss sectionSetup C function call stackHal_platform_initHal_MMU_initHal_enable_cachesHal_IRQ_initCyg_hal_invoke_constructorsInitialize_stubCyg_start On to Kernal startup
1 HAL 启动流程图 下面具体解说一下流程图1
系统启动的开端是电复位,一般是从0X0 开始; 2
电复位之后,跳转到reset_vector,在arch 文件夹下的文件vectors
S 中,这个文件包含所有HAL 包的启动点,reset vector 应用最小的处理器寄存器配置来使得系统进行初始化操作; 3
Reset vector 跳转到_start 函数处,这个函数仍然存在于vectors
S 文件中,_start 是整个HAL 初始化的开始处; 4
跳转到hal_cpu_init 子程序,这个函数存在于variant
inc 或者是arch
inc 文件中,这个函数设置处理器特定的寄存器,如禁用指令和数据高速缓存,以确保处理器在其余的初始化过程中是一个已知的状态; 5