国民技术N32G457REL7 移植FreeRTOS的实现

1.认识FreeRTOS操作系统

       FreeRTOS 是一款流行的开源实时操作系统(RTOS),广泛应用于嵌入式系统领域。它以其小巧的内核、高效的任务调度和丰富的同步机制而闻名,能够在资源受限的嵌入式设备上提供可靠的实时性能。

FreeRTOS 的核心特性

  • 多任务处理:FreeRTOS 支持多任务并发执行,每个任务都有自己的优先级,可以根据需要进行调整。

  • 任务调度:采用抢占式和时间片轮转的调度策略,确保高优先级任务能够及时执行,同时也允许相同优先级的任务公平共享CPU时间。

  • 同步和通信机制:提供信号量、互斥量、事件组和消息队列等机制,方便任务间的同步和数据交换。

  • 内存管理:FreeRTOS 提供多种内存管理方案,允许开发者根据应用需求选择最合适的内存分配策略。

  • 软件定时器:允许创建定时任务,用于周期性执行或延时操作。

2.移植的软件实现

2.1了解工程结构

        这里我构造了一份最基础的工程模板,使用该基础模板实现freertos操作系统的移植,方便各位读者更好的理解freertos的系统该如何实现。

        工程目录的框架图如下:

工程图结构图如下:此图是已完成RTOS移植后的工程目录图。

2.2软件移植

2.2.1FreeRTOS的源码获取

        方式1:通过官网进行下载:FreeRTOS™ - FreeRTOS™https://www.freertos.org/zh-cn-cmn-s        方式2:博主会移植成功的压缩包给各位读者

        在此处给大家一个关于FreeRTOS源码库函数相关的API中文手册,以帮助大家更好的使用FreeRTOS进行项目开发:项目文件预览 - FreeRTOSV9.0.0API中文手册下载:FreeRTOS V9.0.0 API 中文手册下载本仓库提供了一个资源文件的下载,文件名为“FreeRTOS V9.0.0 API 中文手册.pdf” - GitCodehttps://gitcode.com/Open-source-documentation-tutorial/119e0/blob/main/FreeRTOS%20V9.0.0%20API%20%E4%B8%AD%E6%96%87%E6%89%8B%E5%86%8C.pdf

        

2.2.2了解RTOS源码的文件框架

        

源码移植只用到了DEMO,Source两个文件夹

这里博主在移植时并没有将这两个文件直接复制,而是将整个rtos的源码放到了对应的工程文件中,在向工程中添加文件时,只添加需要使用到的即可。

2.2.3移植实现

        以下内容是rtos操作系统的详细移植步骤:

        首先将下图目录中相关的.c文件添加至工程属组中的rtos/

      然后将,下图目录中的port.c文件添加至  上图rtos/port属组中,由于N32G457REL7这款MCU是cortex-M4F内核的cpu,由此将ARM_CM4F该文件夹下的port.c添加到上图rtos/port属组中

       选择对应的配置文件,并将其添加到工程项目中user的属组下,具体的文件目录如下图:

文件添加完成后,在项目中添加对应文件的头文件路径,具体的只需要添加下方的三个路径即可

完成此步操作后,打开下图所示的文件夹

将此文件中的内容修改为如下图所示的数值

屏蔽此文件中的系统定时器的中断服务函数

再将下图文件中的三个中断服务函数屏蔽,否则会程序会报重复定义中断服务函数的错误

由于操作系统的延时是通过系统定时器的节拍作为心跳,由此需要初始化系统定时器,并开启系统定时器的中断等,具体内容如下图:

到此处再去编译以下工程,会报一个栈溢出的钩子函数未定义的错误,在main中定义此钩子函数即可,具体如下图:

到此再编译工程,工程无报错,具体入下图:

至此,FreeRTOS实时操作系统的移植就已完成

3.验证FreeRTOS的移植

       在main中编写如下程序,验证rtos是否移植成功,具体如下图:

程序运行的结果如下图:

 

        由此日志得出,当前程序为,led1任务和led2任务交替运行,但led1的任务优先级又比led2的任务优先级高,所以led的任务会抢占led2,故此有时led1的任务执行两次,led2的任务执行一次。

        验证结果:

                根据日志得出,FreeRTOS操作系统移植成功.

很不错的一套站群系统源码,后台配置采集节点,输入目标站地址即可全自动智能转换自动全站采集!支持 https、支持 POST 获取、支持搜索、支持 cookie、支持代理、支持破解防盗链、支持破解防采集 全自动分析,内外链接自动转换、图片地址、css、js,自动分析 CSS 内的图片使得页面风格不丢失: 广告标签,方便在规则里直接替换广告代码 支持自定义标签,标签可自定义内容、自由截取、内容正则截取。可以放在模板里,也可以在规则里替换 支持自定义模板,可使用标签 diy 个性模板,真正做到内容上移花接木 调试模式,可观察采集性能,便于发现和解决各种错误 多条采集规则一键切换,支持导入导出 内置强大替换和过滤功能,标签过滤、站内外过滤、字符串替换、等等 IP 屏蔽功能,屏蔽想要屏蔽 IP 地址让它无法访问 ****高级功能*****· url 过滤功能,可过滤屏蔽不采集指定链接· 伪原创,近义词替换有利于 seo· 伪静态,url 伪静态化,有利于 seo· 自动缓存自动更新,可设置缓存时间达到自动更新,css 缓存· 支持演示有阿三源码简繁体互转· 代理 IP、伪造 IP、随机 IP、伪造 user-agent、伪造 referer 来路、自定义 cookie,以便应对防采集措施· url 地址加密转换,个性化 url,让你的 url 地址与众不同· 关键词内链功能· 还有更多功能等你发现…… 程序使用非常简单,仅需在后台输入一个域名即可建站,不限子域名,站群利器,无授权,无绑定限制,使用后台功能可对页面进行自定义修改,在程序后台开启生 成功能,只要访问页面就会生成一个本地文件。当用户再次访问的时候就直接访问网站本地的页面,所以目标站点无法访问了也没关系,我们的站点依然可以访问, 支持伪静态、伪原创、生成静态文件、自定义替换、广告管理、友情链接管理、自动下载 CSS 内的图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值