前言:
说点废话,网上有很多关于uCOS-ii移植的文章,好多都是千篇一律,理论性很强,分析了一大堆虚头巴脑的东西,真想问他们,你确定你分析的这些东西是需要你做的工作吗?实操性严重欠缺。。。这方面我也走了很多弯路,下面就将自己的移植过程一步步的记录下来,也给大家做做参考。
首先,简单总结一下移植的大概过程:
(1) 去uC/OS-ii官网下载你要移植芯片CPU的相关案例,不一定完全对应,那就找相应系列吧。
(2) 编程环境一般有两种,分别是IAR和MDK,这个根据你自己的编程环境进行下载。
(3) 本案例需要将uC/OS-II 移植到STM32F103ZET6上,而我使用的编程环境是MDK,很遗憾,官网上提供的案例是基于IAR的,所以要基于IAR的案例进行更改。
(4) 使用MDK创建一个无操作系统的最简单程序,确保这个程序能够使用,这样做的目的是为了一步步的排查错误,假如无操作系统时,都有错误,移植过程中也肯定会有编译错误,那么在排查错误的时候也就增加了难度,不会写物操作系统的简单程序怎么办。。。那就不要往下看了。
(5) 移植的最大的改动主要有两部分,一个是一些头文件的增减,另外一个就是向量表中PendSV_Handler和SysTIck_Handler的修改。这里我要吐槽一下,网上说了一大堆关于什么OS_CPU.H的更改还有各种函数的的分析,这都是扯淡。。。这些根本就不用移植者去修改,官网提供的案例都已经提供了,除非你选择移植的CPU是比较偏的,那么这些东西需要移植者自己去编写。
好了,下面就开始详细的记录怎么去移植。
一、 创建一个无操作系统的简单裸板系统
1. 创建源文件工程文件夹,如下图所示:

其中文件夹“CMSIS”为内核的接口,包含的文件如下图

文件夹STM32_StdPeriph为固件驱动文件夹,这个把STM32的固件全都添加进去即可。
文件夹User为其他文件,如下图所示:

文件夹Output和List主要是放那些编译产生的乱七八糟的文件,为了使工程代码更加简洁。
2.使用MDK创建无操作系统工程项目,这一点就不一一说了,将创建后的工程项目文件树截图如下:

这个时候还没有main文件,那么创建一个mian.c文档即可,这里需要注意,创建main.c后,要将其添加到项目中才行,而不是简单的保存。如下图所示:、

注意:main.c中要有一个mian函数,否则编译器会报错提示你的。然后就是项目的配置,这个还是很重要的,下面分别说需要配置的地方:
(1) Output选项如下:

这里面勾选了Create HEX File选项,同时将项目输出放到了之前创建的Output文件夹。
(2) List选项,将List产生的文件放入到之前创建的List文件夹中。
(3) C/C++配置选项如下:

其中Define选项中,填入:USE_STDPERIPH_DRIVER,STM32F10X_HD,这是告诉编译器,使用标准外设,还有选择的CPU类型,其中CPU类型需要根据你选择移植的CPU进行适当的更改。Include Paths是要包含的头文件路径,这个为了保险,将项目中的所有有.h的文件的文件夹都包含进去就可以了。
4.Debug选项如下:
相关推荐
目前各系统的安全更新主要是从系统软件面去做处理,理论上会让程序有 2% 到 30% 不等的降速状况。...
发表于 2018-04-07 05:00
•
45次阅读
DMA(直接存储器存取)提供在外设与存储器之间或者存储器和存储器之间的高速数据传输使用。注意这里的外...
发表于 2018-04-04 12:14
•
37次阅读
要点:
(1)程序的下载地址改到RAM空间中
(2)程序的debug之前要设定SP,PC指针到R...
发表于 2018-04-04 11:49
•
22次阅读
虽然有许多书籍对保护模式作解释,但没有一本能简单明了地解释清楚,冗长烦杂的术语让人看着想打瞌睡,甚至...
发表于 2018-04-04 11:46
•
14次阅读
数字PDA系统整体由硬件电路和软件系统2部分组成,硬件电路由低功耗ARM微控制器STM32ZET6控...
发表于 2018-04-04 11:25
•
34次阅读
明确细胞构成仅仅是获得基石。“我们继续利用拟时间等算法重构了这些神经细胞类型之间的发育谱系关系,发现...
发表于 2018-04-04 08:55
•
55次阅读
发表于 2018-04-03 23:41
•
67次阅读
发表于 2018-04-03 15:57
•
93次阅读
准备工作的最后一道工序是在二氧化硅层上覆盖一个感光层。这一层物质用于同一层中的其它控制应用。这层物质...
发表于 2018-04-03 14:12
•
49次阅读
X-CUBE-AVS扩展套件包含一组用于STM32F7系列微控制器的库和应用示例,充当支持Alexa...
发表于 2018-04-03 13:41
•
632次阅读
要求系统按如下方式进入和退出睡眠模式:在系统启动2秒后,将RTC在3秒钟之后配置为产生一个报警事件,...
发表于 2018-04-03 11:43
•
36次阅读
发表于 2018-04-03 10:50
•
75次阅读
发表于 2018-04-03 10:44
•
67次阅读
发表于 2018-04-03 10:43
•
88次阅读
如输出到称为HCLK、FCLK的时钟,还直接输出到SDIO外设的SDIOCLK时钟、存储器控制器FS...
发表于 2018-04-03 08:45
•
83次阅读
CPU和GPU都属于冯·诺依曼结构,指令译码执行,共享内存。FPGA之所以比CPU、GPU更快,本质...
发表于 2018-04-02 17:52
•
346次阅读
RT-Thread是一个高度可配置的嵌入式实时操作系统,配置文件是rtconfig.h。Nano就是...
发表于 2018-04-02 15:58
•
73次阅读
Intel刚刚完成对过去五年CPU幽灵、熔断两大漏洞的修补工作,AMD也确认被曝光的十几个漏洞影响很...
发表于 2018-04-02 14:40
•
261次阅读
cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高...
发表于 2018-04-02 10:35
•
72次阅读
发表于 2018-04-01 11:29
•
85次阅读
如果你完全不懂scala但又想用Spark Mllib,你可能得向scala妥协。这不是理想的解决方...
发表于 2018-03-31 10:34
•
401次阅读
发表于 2018-03-30 16:21
•
228次阅读
内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。假如我只修改了...
发表于 2018-03-30 16:09
•
287次阅读
和app中分别放置两套中断向量表,当iap代码中将app烧写到flash中之后,跳转到app的中断...
发表于 2018-03-30 15:58
•
120次阅读
发表于 2018-03-30 15:29
•
236次阅读
CPU 和 GPU 将各自维护一些数据结构来保证环形缓冲区的正确工作。这些 数据结构有缓冲区的基地址...
发表于 2018-03-30 15:01
•
310次阅读
所谓的4核8线程,4核指的是物理核心。通过超线程技术,用一个物理核模拟两个虚拟核,每个核两个线程,总...
发表于 2018-03-30 14:48
•
196次阅读
展讯通信有限公司(Spreadtrum Communications, Inc.)隶属紫光科技集团有...
发表于 2018-03-30 14:09
•
232次阅读
这个是MDK编译之后能够得到的每个段的大小,也就能得到占用相应的FLASH和RAM的大小,但是还有两...
发表于 2018-03-29 13:45
•
260次阅读
德州仪器(Texas Instruments),在1947年创办。是世界上最大的模拟电路技术部件制造...
发表于 2018-03-29 10:13
•
372次阅读
美国德州仪器公司(英语:Texas Instruments,简称:TI),是世界上最大的模拟电路技术...
发表于 2018-03-29 10:06
•
230次阅读
学习单片机,你不能没有一本纸质的教程,到本地的书店挑选或便宜的可以到卓越、当当网掏一掏。有了教程能更...
发表于 2018-03-29 09:16
•
219次阅读
FPGA相比于CPU,最大的优点在于速度,简单来讲,FPGA是靠控制每个时钟(Cycle)来驱动信号...
发表于 2018-03-28 17:10
•
730次阅读
发表于 2018-03-28 16:35
•
254次阅读
将门CEO高欣欣与联想芮勇、IBM沈晓卫、Intel宋继强、旷视科技孙剑,以及将门CTO沈强,就20...
发表于 2018-03-28 16:30
•
340次阅读
本文主要介绍了基于stm32的pwm呼吸灯设计与实现。使用定时器来控制I/O口输出PWM波形,从而驱...
发表于 2018-03-28 16:23
•
277次阅读
Java底层实现——CPU的10个术语
发表于 2018-03-28 14:14
•
189次阅读
发表于 2018-03-28 13:32
•
287次阅读
最小系统:考虑到小车的主控板可以作为今后做四轴或其他更高级的机器人的基础电路,所以主控选择了STM3...
发表于 2018-03-27 09:59
•
348次阅读
到此问题毫无进展,只好求助ST芯片设计人员做进一步确认,看看芯片是否真的坏了。同时,又请客户的硬件工...
发表于 2018-03-26 11:24
•
226次阅读
Lenovo 720S-14IKB特别轻薄外观设计完美质感,很适合出差旅行携带,笔电外观的长宽高大约...
发表于 2018-03-26 09:31
•
264次阅读
存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOT,BLOCK等进行统一编址。
发表于 2018-03-23 15:24
•
290次阅读
Firmware V4.1的S7-1200 CPU PROFIdrive 是通过 PROFIB...
发表于 2018-03-22 14:46
•
193次阅读
ACAP 的核心是新一代的 FPGA 架构,基于Arm架构,结合了分布式存储器与硬件可编程的 DSP...
发表于 2018-03-22 10:43
•
430次阅读
cpu是计算机的核心,其重要性好比心脏对于人一样。实际上,处理器的作用和大脑更相似,因为它负责处理...
发表于 2018-03-21 14:49
•
133次阅读
CPU 包括运算逻辑部件、寄存器部件和控制部件等。
发表于 2018-03-21 14:29
•
149次阅读
CPU是Central Processing Unit(中央处理器)的缩写,CPU一般由逻辑运算单元...
发表于 2018-03-21 13:55
•
353次阅读
cpu根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片段。根据cpu的指令...
发表于 2018-03-21 11:39
•
405次阅读
FWLib-用来存放所需固件库的头文件;2).StartUp-用来存放STM32的启动代码,添加co...
发表于 2018-03-20 15:52
•
305次阅读
边缘计算需要越来越强大的数据处理能力和分析能力。随着5G网络等新技术的崛起,终端的数量以及生成、消费...
发表于 2018-03-19 16:31
•
72次阅读
从越来越多的数据产生自网络边缘的那一刻起,意味着就近提供边缘智能服务的边缘计算将发挥巨大的作用。简单...
发表于 2018-03-19 16:21
•
95次阅读
为什么 CPU 的浮点运算能力比 GPU 差,为什么不提高 CPU 的浮点运算能力?
发表于 2018-03-16 15:12
•
381次阅读
本文开始介绍了晶圆的概念,其次阐述了CPU的工艺要素和和CPU生产流程,最后详细介绍了晶圆如何变成c...
发表于 2018-03-16 13:54
•
429次阅读
ARM首先是一个公司,这家公司设计CPU并向各个CPU制造商授权许可,所以ARM公司是一家CPU设计...
发表于 2018-03-14 10:28
•
602次阅读
本文详细介绍了使用STM32测量频率和占空比的几种方法。
发表于 2018-03-13 15:43
•
718次阅读
。国巨先前已先公布去年财报,去年第4季毛利率一举攻上43.7%,年成长19个百分点,不仅笑傲台系被动...
发表于 2018-03-13 14:58
•
561次阅读
在内存复制过程中,面对大数据量的转移时利用DMA。所以,我们使用输入捕获事件触发DMA来搬运寄存器而...
发表于 2018-03-13 10:02
•
1495次阅读
跟踪器tracer是一个高级的性能分析和调试工具,如果你使用过 strace或者 tcpdump,你...
发表于 2018-03-12 15:45
•
413次阅读
基于74HC系列的CMOS积体电路,插在面包板上用电线跳接起来,他花了两天时间画电路图、一个星期时间...
发表于 2018-03-12 09:21
•
190次阅读
华大学微电子所所长魏少军9日呼吁,当前,AI领域芯片已“炒作”过热,在目前还没有出现AI通用算法的芯...
发表于 2018-03-12 09:16
•
577次阅读
能对指令进行译码并执行规定的动作;可以进行算术和逻辑运算;能与存储器,外设交换数据;提供整个系统所需...
发表于 2018-03-12 09:03
•
117次阅读
星形拓补就是地址线走到两片DDR中间再向两片DDR分别走线,菊花链就是用地址线把两片DDR“串起来”...
发表于 2018-03-12 08:36
•
1592次阅读
计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
发表于 2018-03-09 16:30
•
746次阅读
与mv指令类似,mvi指令也将一个数据送入Rx当中,只不过这次的数据存在指令当中,是立即数,所以Rx...
发表于 2018-03-09 14:23
•
868次阅读
将硬件系统区分为独立单元单独做成底层驱动函数和应用函数,并且函数正常应该有参数和返回值,其中返回值是...
发表于 2018-03-09 13:51
•
764次阅读
指令周期是取出一条指令并执行这条指令的时间。一般由若干个机器周期组成,是从取指令、分析指令到执行完所...
发表于 2018-03-09 10:51
•
707次阅读
JPR的数据再次给了AMD一剂强心针,2016年完成和NVIDIA三七开后,2017年的AMD在年末...
发表于 2018-03-09 10:13
•
126次阅读
发表于 2018-03-09 09:45
•
64次阅读
最近买了个数字罗盘模块,调通后发现很不错,非常灵敏,测试的时候精度在1°以内。连续测量模式下,最快测...
发表于 2018-03-08 08:40
•
252次阅读
C28x+FPU架构的C2000微处理器在原有的C28x定点CPU的基础上加入了一些寄存器和指令,来...
发表于 2018-03-07 08:57
•
1362次阅读
CPU就是在一张硅片上,刻几百万个晶体二极管。但是在很早之前,晶体管一直是用锗做的。
发表于 2018-03-06 17:25
•
784次阅读
人在空闲的时候免不了昏昏欲睡那cpu空闲时在做什么呢?
发表于 2018-03-06 15:43
•
550次阅读
2月12日,两款AMD锐龙APU(Raven Ridge)正式上市,其中Ryzen 5 2400G售...
发表于 2018-03-06 11:24
•
556次阅读
目前世界上有两种文明,一种是人类社会组成的的碳基文明,一种是各种芯片组成的硅基文明。
发表于 2018-03-05 15:34
•
736次阅读
8代酷睿和AMD Ryzen在2017缠斗了一年,结局如何呢?作为参考数据之一,德国网站Mindfa...
发表于 2018-03-05 13:36
•
581次阅读
从无到有(make something from scratch)一直是工程师的浪漫,例如自行调配出...
发表于 2018-03-04 14:24
•
582次阅读
意法半导体的新STM32探索套件简化移动网至云端连接,并提供免费试用的第三方服务,让物联网设备能够通...
发表于 2018-03-02 16:44
•
323次阅读
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台...
发表于 2018-03-01 15:53
•
162次阅读
严格意义上讲,晶体管泛指一切以半导体材料为基础的单一元件,包括各种半导体材料制成的二极管、三极管、场...
发表于 2018-03-01 15:37
•
481次阅读
cpu里执行指令计算的是最基本的功能,在这里面,复杂指令机不同的指令分解开了就是一系列微命令,精简指...
发表于 2018-03-01 15:24
•
158次阅读
CPU最重要的工作室进行数据运算,从加减乘除到一些高级的运算,包括浮点、积分、微分、FFT等。CPU...
发表于 2018-02-27 11:18
•
3293次阅读
高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定...
发表于 2018-02-24 14:39
•
471次阅读
中断响应是CPU对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称矢量地...
发表于 2018-02-23 09:30
•
1724次阅读
核心又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工...
发表于 2018-02-12 10:42
•
809次阅读
中央处理器主要包括运算器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和...
发表于 2018-02-12 10:30
•
390次阅读
这次学习STM32花了很长时间,一个礼拜多,也有颇多收获,学习过程也有颇多曲折。这次的任务是:用ST...
发表于 2018-02-11 11:26
•
405次阅读
目的:基础PWM输出,以及中断配合应用。输出选用PB1,配置为TIM3_CH4,是目标板的LED6控...
发表于 2018-02-10 16:47
•
192次阅读
按键的一端与STM32的GPIO(PH15)相连,另外一端接地,且PH15外接一个1K电流大小的上拉...
发表于 2018-02-10 11:08
•
908次阅读
新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合...
发表于 2018-02-09 11:48
•
169次阅读
STM32F0 系列产品基于超低功耗的 ARM Cortex-M0 处理器内核,整合增强的技术和功能...
发表于 2018-02-09 11:30
•
1131次阅读
电脑电源是把220V交流电,转换成直流电,并专门为电脑配件如CPU、主板、硬盘、内存条、显卡、光盘驱...
发表于 2018-02-07 11:43
•
292次阅读
本实验通过STM32的三个GPIO口驱动三色LED的三个通道,将GPIO设置为推挽输出模式,采用灌电...
发表于 2018-02-07 11:14
•
1984次阅读
首先,要确认:原PLC的某些块的配置中,在“防拷贝保护”(Copy protection)区域,是否...
发表于 2018-02-06 17:57
•
1139次阅读
虚拟现实是一种更为自然的用户界面,我们期望VR中的内容和体验能够足够自然。当期望无法得到满足时,真实...
发表于 2018-02-06 12:07
•
197次阅读
提起计算速度,我们首先能想到的是云计算。云计算有数不清的好处,例如计算快,计算数据的量大,等等。但智...
发表于 2018-02-06 11:42
•
1396次阅读
单片机按存储结构可分为二类:一类是哈佛结构,另一类是普林斯顿结构。
①哈佛结构所谓哈佛结构是指...
发表于 2018-02-06 09:02
•
1888次阅读
2017年12月,IBM推出首个为AI而生的服务器CPU POWER9,旨在为数据密集型人工智能工作...
发表于 2018-02-05 20:36
•
249次阅读
做AT89C5X(51,52,55等等)的时间最长,知道的可能多些,主要谈些实际应用中的经验与教训。...
发表于 2018-02-05 11:04
•
1101次阅读
现在,"request层"并存着两种模型:单队列(single-queue) 和 多队列(multi...
发表于 2018-02-03 16:29
•
876次阅读
最为我们熟知的关于计算机不同组件速度差异的图表,是下面这种金字塔形式:越往上速度越快,容量越小,而价...
发表于 2018-02-03 16:16
•
1146次阅读
评论