PROTEUS中LPC2124的ARM处理器与uC-OS-II移植实战

3星 · 超过75%的资源 需积分: 10 15 下载量 85 浏览量 更新于2024-10-01 2 收藏 12KB TXT 举报
"本文主要探讨了如何在PROTEUS环境中使用ARM处理器,特别是LPC2124微控制器,以及如何进行uC-OS-II实时操作系统(RTOS)的移植。LPC2124是一款基于ARM7TDMI-S内核的微控制器,具有256KB的闪存和16KB的数据存储器,支持16位和32位指令集。它还配备有丰富的外设接口,如快速ISP、A/D转换器、串口和PWM等。在进行LPC2124的程序设计时,通常会利用其内存映射重映射功能(LPCMemoryMapRemap)和Bootblock来优化启动流程。" 在LPC2124的启动过程中,Bootblock扮演了关键角色。Bootblock是固件的一部分,位于闪存的特定区域,通常用于系统初始化和引导加载。当系统复位时,LPC2124会从Bootblock开始执行代码。Bootblock的内存映射重映射功能允许开发者将不同地址空间映射到闪存的不同部分,以便于管理和更新程序。 Bootblock的执行流程包括以下几个步骤: 1. 检测P0.14引脚状态,以确定是否处于ISP模式。如果该引脚被拉低,则表示系统需要进入ISP模式。 2. 当P0.14为高电平时,系统继续执行,此时会检查Boot1和MEMAP标志,设置MEMAP为1,以指向Flash的第二区。 3. 然后,处理器从Flash的起始地址开始执行代码,即0x00000000。这个阶段,Bootblock会初始化必要的系统设置,并准备进行内存映射重映射。 4. BootBlock代码执行完毕后,系统将跳转到新地址,通常是0x00000000,此时Flash的内容已经被映射到这个地址,程序可以继续执行。 在Bootblock中,还需要处理异常和中断向量,以确保系统在各种异常情况下的正确响应。这些异常包括未定义指令、软件中断、预取取指异常、数据访问异常以及中断和快速中断(IRQ和FIQ)。Bootblock的异常处理代码通常会设置这些异常向量的地址,以便在发生异常时能够正确跳转到相应的处理函数。 在PROTEUS环境中模拟LPC2124和uC-OS-II移植,可以帮助开发者在硬件实际部署前验证软件的正确性和性能。通过这种方式,可以减少实际硬件调试的时间和成本,提高开发效率。同时,理解LPC2124的内存布局和Bootblock机制对于成功移植和优化RTOS至关重要。 总结来说,本文详细介绍了在PROTEUS环境下使用LPC2124微控制器以及移植uC-OS-II操作系统的过程,涉及到的关键技术包括Bootblock的内存映射重映射、异常处理和Boot流程。这对于想要在LPC2124平台上进行嵌入式系统开发的工程师提供了宝贵的指导。