ARM-VxWorks基本概念及常见问题
VxWorks是一个实时操作系统(RTOS),特别适用于嵌入式系统。在ARM架构上运行VxWorks,我们需要理解几个关键的概念,这些概念对于系统的初始化和运行至关重要。 1. **Bootrom和Boot Image的区别**: - **Bootrom**:是集成在CPU芯片内部的小型引导程序,类似于PC机上的BIOS,负责初始化硬件并加载更高级别的引导程序。 - **Boot Image**:用于加载VxWorks Image到目标板的程序,它只初始化基本的硬件,如串口和网口,以便后续加载完整的VxWorks操作系统。 2. **VxWorks Image**: - VxWorks Image包含了完整的VxWorks操作系统,以及应用程序和必要的库。它是实际运行在目标板上的核心部分。 3. **ROM中的VxWorks运行方式**: - 根据配置,VxWorks可以是压缩的、ROM-based的或者是直接在RAM中运行的。压缩版本在加载时会被解压到RAM_HIGH_ADRS;ROM-based的VxWorks会将data段复制到LOCAL_LOW_ADRS,text部分保留在ROM中执行;非压缩且非ROM-based的VxWorks则直接复制到RAM_LOW_ADRS。 4. **配置更改的影响**: - 修改config.h中的系统设置,如增加网卡,通常不需要重新烧录Bootrom,只要通过FTP等手段下载新的VxWorks Image即可。但如果是OEM产品的改动,可能需要更新Bootrom以匹配新的硬件配置。 5. **任务级与中断级的通信**: - 在VxWorks中,中断服务由硬件触发,软件通过intEnable()启用中断,并使用intConnect()将中断号与对应的中断服务例程(ISR)关联。一旦中断发生,系统会自动跳转到ISR执行。 6. **Bootloader**: - Bootloader类似于PC机的BIOS,是初始化硬件和加载操作系统的第一步。它可以嵌入CPU内部,也可以位于外部EEPROM中。开发板的改动通常不会影响Bootloader,除非涉及到硬件接口的重大变更。 7. **VxWorks应用程序的编译和下载问题**: - Tornado环境下,编译错误通常是由于未定义的符号,这可能是缺少了头文件或者C/C++混用导致的。解决方法包括正确声明C函数为extern "C",确保文件扩展名正确,以及在编译时包含所有必要的头文件。 - 下载错误同样可能是未定义的符号,这通常意味着在链接阶段缺少某些库或函数定义。需要检查链接设置和源代码中函数的引用。 8. **直接烧录VxWorks Image**: - 对于某些ARM处理器,可以直接在Boot模式下将VxWorks Image烧录到Flash中,从而跳过Boot Image阶段,这要求处理器支持直接从Flash启动操作系统。 理解和处理这些基本概念和常见问题对于成功部署和维护基于ARM的VxWorks系统至关重要。了解这些细节有助于优化系统的启动流程,提高系统效率,以及解决在开发和调试过程中遇到的问题。
- 粉丝: 0
- 资源: 18
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助