本帖最后由 男娃娃哈哈哈 于 2018-11-21 20:58 编辑
第一次发帖, 有点紧张打几个回车压压惊
我是学玩寄存器的, 这两天学习UCOSIII, 但是没有寄存器版本的UCOSIII源码, 很尴尬,于是想移植一份寄存器版本的。按照正点原子视频里的方法, 我成功移植了UCOS2, 但是对于UCOS3时, 却遇到了stm32f10x_conf.h未发现的问题。以下为解决方法。
1, 准备一份UCOS3扩展例程和跑马灯实验寄存器例程
2,拷贝扩展例程里的 “UCOSIII” 至跑马灯实验里 3,对比着两个例程, 然后啥啥啥, (这步不知道叫啥, 上图)
5, 之后编译一下, 然后就出现了bsp.c 里的stm32f10x_conf.h不存在的问题, 现在把它注释掉, 出现了下图中的编译结果
RCC_ClocksTypeDef未定义, RCC_GetClocksFreq()未定义, 我们只要将这两个东西的定义部分加入进去, 问题就解决了 1 首先, 对UCOS3源码RCC_ClocksTypeDef go to definition , 复制定义部分至bsp.h 。 注意uint8之类的得替换成原始形式unsigned int
2 同样操作, 复制RCC_GetClocksFreq()定义部分至bsp.h (挺长的一段程序)。 编译一下, 又爆了很多错 错误大致分三类 RCC CFGR_SW_Mask, CFGR_HPRE_Set_Mask........... APBAHBPrescTable[16]........ 3, 不慌, 先看rcc , RCC定义于stm32f10x.h里, 把它include就好了 。就是在#include <bsp.h>下面加上#include <stm32f10x.h>, 不附图了。 4, CFGR_SW_Mask 都是一些地址定义,从UCOS源码里整个复制到bsp.h里就行。 5,最后的APBAHBPrescTable[], 同样操作, 注意___I 和uint8 需要替换 6, 编译 ,0 err, 0 warning 7 替换tes.c , 把main函数里有关库函数的操作换成寄存器的, 将sys.c里 SYSTEM_SUPPORT_OS 置 1 ;下载程序, 剧终
感谢正点原子发帖实时保存, 刚才手残点了X, 差点从头来
|