uCOS-II移植到LPC17XX方法芯片解密
1. 芯片解密知识准备 要想对ucos-ii的移植有较深的理解,需要两方面知识: (1)目标芯片,这里是lpc17xx系列芯片,它们都是基于ARMv7 Cortex-M3内核,所以这一类芯片的ucos-ii移植几乎都是一样的,要想了解Cortex-M3内核,推荐《ARM Cortex-M3权威指南》(宋岩译); (2)ucos-ii内核原理,推荐《嵌入式实时操作系统uC/OS-II(第2版)》(邵贝贝译)。 2. 芯片解密下载文件 ucos-ii移植过程主要涉及三个文件:os_cpu.h, os_cpu_a.asm和os_cpu_c.c 实际上,一般情况下,我们想要移植的目标芯片前辈们都已经移植成功过了,我们需要做的就是下载就可以了。 需要下载两类文件: (1)lpc17xx芯片启动/初始化代码:LPC17xx.h, system_LPC17xx.h, core_cm3.h, core_cm3.c, startup_LPC17xx.s和system_LPC17xx.c,这几个文件都可以从lpc官方网站lpc17xx系列芯片的任何一个项目中找到; (2)ucos-ii移植代码:可以在Micrium官方网站中找到uCOS-II在LPC17xx上的移植代码(IAR平台)。 3. 芯片解密创建工程 (1)创建文件夹UCOS_II_V289,在该目录下创建子目录APP, lpc17xx, Output, uC-CPU, UCOS-II,在Output下创建obj和list子目录,然后将第2步下载的文件添加进相应的文件夹中,文件拓扑图如下: UCOS_II_V289 ├─APP │ hello.c │ ├─lpc17xx │ core_cm3.c │ core_cm3.h │ LPC17xx.h │ startup_LPC17xx.s │ system_LPC17xx.c │ system_LPC17xx.h │ type.h │ ├─Output │ ├─list │ └─obj ├─uC-CPU │ os_cpu.h │ os_cpu_a.asm │ os_cpu_c.c │ os_dbg.c │ └─uCOS-II app_cfg.h os_cfg.h os_core.c os_flag.c os_mbox.c os_mem.c os_mutex.c os_q.c os_sem.c os_task.c os_time.c os_tmr.c ucos_ii.h 其中,hello.c中的文件代码如下: #include <LPC17xx.h> #include <ucos_ii.h> #define TASK_STK_SIZE 512 OS_STK TaskStartStk[TASK_STK_SIZE]; void TaskStart(void *data); int main(void) |

芯片解密