打印
[STM32F4]

如何用uC官方的系统和ST的库搭建工程?

[复制链接]
1072|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kokoromi|  楼主 | 2017-3-1 09:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uC官方下载了uCOS-III的源码,用ST官方的库函数搭建工程,不知道该怎么弄,网上的视频啊教程之类的都是用的xx开发板搭建的,我就想用原始的ST官方固件库和uC官方的系统从头开始搭建,中间发现了很多问题,比如:
1、uC的系统中的BSP里用C语言定义了向量表和中断处理函数,而ST库用的是.S的汇编文件定义的向量表,也定义了中断处理函数,这俩明显重复了,移植的话怎么取舍协调?
2、uC的系统中的os_cpu.c里定义了systick的初始化以及设置、中断处理的函数,ST的库里也定义了这些东西,这也是冲突的,移植要怎么做,感觉很乱
3、uC的系统中在BSP里还定义了系统时钟的初始化相关函数,而ST的库里也定义了这些函数,这些还是冲突的,怎么修改?
还有很多类似的问题,uC和ST都有各自的一套配置,很混乱,不知道有没有这种教程能从头教怎么搭建移植uCOS-III系统的而不是基于某开发板的?

另外ST现在推出了一个新的库叫Cube的,这个到底什么鬼?封装了那么多层,函数嵌套那么多真的好吗?搞嵌入式编程本来就是要了解寄存器的吧,非要弄得和纯软件编程似的...而且感觉很多配置本来很简单,非要搞的那么复杂,那么多没用的嵌套,也不好理解。大家现在都用的这个Cube库吗?

官方说这个Cube库是给CubeMX软件用的,这个软件我看了下,确实很直观,芯片时钟、引脚功能什么的都能直接配置,而且直接生成对应的工程源码,但是我现在想在这个基础上移植uCOS-III,发现根本没法弄,除非CubeMX这个软件支持uC系统,否则,要想移植感觉太难了,根本无从下手,谁有这方面的资料吗,怎么感觉Cube库就像是毒药,一旦用了,出问题了就直接等死了...

沙发
birdSTM32| | 2017-3-1 11:12 | 只看该作者
uCOS中的函数是对ST库函数的重写,你移植之后,编译通过的是你在uCOS移植过程中写的初始化函数和中断函数,不用担心冲突的问题。
Cube确实很好用,对库的封装到了很直观的地步,从软件转过来的开发人员更容易上手。而且软件工程做得好,就算是换MCU,移植的时候所有上层功能相关的文件都不需要改动。现在MCU主频那么高,解一次函数调用就几ns的事情,不用担心计算能力跟不上。了解寄存器不是让你用写寄存器的方式来写程序,那是51时代的事情了,STM32系列是为了更快速、更高效的开发更复杂的程序。即使你不使用CubeMX,我也推荐你使用Cube库。
使用Cube库移植uCOS-III我做过,没有什么难以解决的问题。野火有移植教程,你可以看看。
CubeMX中自带FreeRTOS系统,在一般情况下,不比uCOS差什么功能,而且使用更为简单,不存在版权问题,强烈推荐。

使用特权

评论回复
板凳
kokoromi|  楼主 | 2017-3-1 11:33 | 只看该作者
birdSTM32 发表于 2017-3-1 11:12
uCOS中的函数是对ST库函数的重写,你移植之后,编译通过的是你在uCOS移植过程中写的初始化函数和中断函数, ...

ST主推Cube库,我也知道肯定比之前的好,但是感觉不好用啊,CubeMX里面也不支持uC只有FreeRTOS,野火的资料我看过,根本没提到我说的那几个,uC和ST重复的中断向量表和中断处理函数都没说怎么处理,还有一systick定时器的相关重复函数也没说,uC里的自由运行定时器也没提是否需要处理,感觉太多东西没交代清楚,我不希望直接告诉我怎么做,更希望能告诉我为什么这么做。要不然以后遇到类似问题还是得受制于人。

使用特权

评论回复
地板
birdSTM32| | 2017-3-1 12:12 | 只看该作者
为什么这么做?是因为uCOS需要。。。uCOS是上层软件,ST的库是一个底层面向上层的接口,移植系统就是把用到的接口对接起来。uCOS的官方手册有中文的,里面详细说明了系统运行需要哪些支持,移植的时候我们就是通过底层向它提供接口,比如时钟、中断、修改启动文件中的中断向量表指向等等。
库里的所有函数都是可以自己【重写】的,不会产生冲突。如果是stm32fxxx_it.c里的中断函数的话,严格说,它是ST官方给你提供的一个模板,并不属于库,你可以把冲突的部分注销掉。
如果你经历过之前用F1开发,后来换F4、F7,你就会知道为什么Cube库好用了。。。你单独实现的上层功能,一行代码都不用改,就是这么方便。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

111

主题

344

帖子

3

粉丝