1050|8

253

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

【ACM32G103RCT6】3-移植FreeRTOS到ACM32上 [复制链接]

 
本帖最后由 qiao--- 于 2023-12-30 03:20 编辑

本期视频我们移植一下rtos系统到acm32上,acm32兼容M33和M4指令集所以移植起来还是比较好移植的,文章最后有工程附件资料。

首先下载FreeRTOS 的官方源码,给出网址FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions

下载后进入源码文件夹FreeRTOSv202212.01\FreeRTOSv202212.01\FreeRTOS下面

 

source目录是官方的一些源码使我们移植的重头戏,demo文件夹是一些基于板子的移植例程,我们后面的移植也是主要基于这两个文件夹来移植。

我们打开我们的工程目录新建一个FreeRTOS的文件装我们工程的FreeRTOS源码,如下图:

  

 

进入我们下载的源码目录source文件夹下面将include文件夹和点c文件拷贝到我们的FreeRTOS文件夹下面,并且新建一个portable文件用于装架构的移植代码,如下图。

  

 

将FreeRTOS\Source\portable\RVDS文件夹下面的ARM_CM4F文件夹拷贝到portable文件夹下面,并且将FreeRTOS\Source\portable\MemMang文件夹下面的heap_4.c文件夹拷贝到portable文件夹下面。见下图

 

将demo目录下的相同架构的FreeRTOSConfig.h文件拷贝到我们工程的user目录下,我拷贝的是FreeRTOSv202212.01\FreeRTOSv202212.01\FreeRTOS\Demo\CORTEX_M4F_CEC1302_Keil_GCC文件夹下面的FreeRTOSConfig.h文件。

这样代码的移植工作就移植好了,接下来就是工程的搭建。进入keil创建对应的RTOS文件并加入点c文件,如下图

 

添加完成我们进行编译一下

 

一个报错原因是没有定义系统频率,我们将FreeRTOSConfig.h文件夹下面的第44行改成如下的代码

  

 

再次进行编译,三个错误

 

我们将it文件夹下面的这2个中断删除并修改SysTick_Handler中断,因为他们和rtos文件的中断名字重定义了

 

  

再次进行编译,0错误,0警告。

 

 

接下来我们创建两个任务简单运行一下。

 

打开串口观看一下状况,系统移植成功,可以正常运行。

 

 

rtos.7z (1.28 MB, 下载次数: 2)

最新回复

我是来挖矿的,搂着这个帖子是我感兴趣跟要学的,有更详细的讲解说明就好了,软件编程逻辑之类的, 我是小白,不太懂,描述的不准确勿笑话   详情 回复 发表于 2023-12-30 13:22
点赞 关注(1)
 
 

回复
举报

7087

帖子

11

TA的资源

版主

沙发
 
感谢大佬为航芯科技装上freertos这个操作系统的芯。
 
 
 

回复

7087

帖子

11

TA的资源

版主

板凳
 

我好奇的是,freertos的心跳包是怎么跟系统对接上的?

点评

心跳我是用的systick中断为他提供的心跳,然后hal库的心跳我用定时器6的中断提供。对了,昨晚我看你的帖子就是那个系统时钟有点没看明白,我用的g_SystemCoreClock.[attachimg]769212[/attachimg]    详情 回复 发表于 2023-12-30 14:13
 
 
 

回复

7087

帖子

11

TA的资源

版主

4
 

也是修改systickhandle这里来提供心跳包的,是不是Freertos比tobudos的移植的文件要少好多个呀。

 
 
 

回复

690

帖子

0

TA的资源

纯净的硅(高级)

5
 

因为现在Cortex-M系列内核针对RTOS都做了倾向性设计,所以移植起来非常方便了。

点评

是这样的,现在移植非常方便  详情 回复 发表于 2023-12-30 14:14
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(中级)

6
 

我是来挖矿的,搂着这个帖子是我感兴趣跟要学的,有更详细的讲解说明就好了,软件编程逻辑之类的, 我是小白,不太懂,描述的不准确勿笑话

点评

哈哈感谢支持  详情 回复 发表于 2023-12-30 14:15
 
 
 

回复

253

帖子

0

TA的资源

纯净的硅(初级)

7
 
lugl4313820 发表于 2023-12-30 08:58 我好奇的是,freertos的心跳包是怎么跟系统对接上的?

心跳我是用的systick中断为他提供的心跳,然后hal库的心跳我用定时器6的中断提供。对了,昨晚我看你的帖子就是那个系统时钟有点没看明白,我用的g_SystemCoreClock.

 

 
 
 

回复

253

帖子

0

TA的资源

纯净的硅(初级)

8
 
jobszheng5 发表于 2023-12-30 09:46 因为现在Cortex-M系列内核针对RTOS都做了倾向性设计,所以移植起来非常方便了。

是这样的,现在移植非常方便

 
 
 

回复

253

帖子

0

TA的资源

纯净的硅(初级)

9
 
haocede 发表于 2023-12-30 13:22 我是来挖矿的,搂着这个帖子是我感兴趣跟要学的,有更详细的讲解说明就好了,软件编程逻辑之类的, 我是小 ...

哈哈感谢支持

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表