AT32的FreeRTOS的使用

1、通过自己整理的官方的项目库的条件下移植FreeRTOS

        首先自己已经根据at32的官方库,创建好了自己的一个项目文件,根据自己的开发板,可以有串口、led灯等测试的app,后面需要移植的FreeRTOS需要使用串口或者led灯进行验证。

    移植FreeRTOS需要注意的部分:

        1、移植的项目必须开启滴答时钟的中断,FreeRTOS的驱动就是靠滴答定时器的时钟中断。

        2、FreeRTOS中重现定义了三个中断函数:SysTick_Handler()、PendSV_Handler()

SVC_Handler();

下面是AT32上移植FreeRTOS:

        1、首先准备好前面说的at32的项目文件,然后去FreeRTOS官方或者at32的论坛或者资料中心(推荐去at32的论坛或者资料中心,因为可能存在版本的问题,导致移植中会有很多的问题)。

        2、在at32项目中添加FreeRTOS的分组,然后需要添加下面的相关文件:

        首先是FreeRTOS的核心文件,task和list是必须要的文件,其他的可以根据需要自行添加。

       

        这两个文件夹下的文件,对应添加m4内核、poit4的存取方式。

        

        下面的头文件中箭头指出的两个头文件是非常重要的,有时候会缺少“FreeRTOSConfig.h”的头文件,这时候需要自己从新添加。

        

 上面文件都添加完成之后,就在keil中添加对应文件的路径就可以了。然后进行编译。编译好之后,首先进行下面的修改。

1、将编译产生的一些错误进行修改,比如找不到文件,未定函数这种。

2、上面添加之前需要确认滴答定时器的中断时候打开,卡面忘记介绍

 3、FreeRTOSConfig.h头文件里面对对前面介绍的三个中断函数进行define的从定义;或者直接在启动文件里面对这三个中断函数进行替换修改。

 4、再次编译运行会产生三个重定义的函数,这时候到中断初始化文件里面,将上面三个中断函数屏蔽掉就可以了。

上面全部完成之后,移植的部分应该就完成了,这时候就需要写测试代码对移植的FreeRTOS做驱动测试了。

如果不能运行,可以检查系统滴答定时定器的中断是否开启。

2、利用AT32技术论坛里面的demo整理之后使用

      在下图所示的位置,找到at32移植好的例程,

 

         下载了资料之后,应用FreeRTOS应用笔记里面关于项目中移植FreeRTOS的内容,是非常少的,几乎没有什么作用,关于FreeRTOS的使用还是很丰富的。

        里面的demo是直接可以根据选择不同芯片型号的启动文件使用,直接打开运行的时候,会报错,是自己写的app代码产生的错误,只需要屏蔽掉led的代码,只留下uasrt1的代码就可以了,进行任务函数的测试。

        然后可以根据自己的习惯创建项目文件夹,进而整理出来自己的项目文件,创建如下图所示的文件夹。

         主要需要处理的文件是:start文件夹、freertos文件夹、library文件夹。start文件夹主要存放项目的启动文件,包括中断文件、时钟文件、还有cm4的内核文件,如下图所示:

         然后就是freertos文件夹中主要就是FreeRTOS官方的文件,主要文件分为下图所示的三部分,图中的这些c文件就是FreeRTOS的核心文件,包括任务、链表、消息队列等文件。

         portable文件中主要是关于内存管理的文件和cm4和cm3的内核接口文件,如下图所示:

        include头文件里面主要是一些重要的头文件,如下图所示,其中FreeRTOSConfig.h文件主要是FreeRTOS的代码剪切的头文件,使用那些函数就要定义相应的宏。

         这些代码整理好之后,在keil中创建了项目之后,选择代码,然后选择编译中产生文件的位置,然后在keil中添加项目和文件,然后添加文件的路径,编译的时候,可能会产生某个函数隐式定义,那就是没有引用相应的头文件,添加对应的头文件就可以了。

        另一种就是发现没有函数没有定义的错误的时候,但是通过keil的全局搜索,搜i所不到这个函数的时候,可能是某个宏重定义了这个函数,然后这个函数的开启宏没有定义。比如SysTick_Handler()函数,编译的时候没有定义这个函数的开启宏,就会产生报错。比如下面产生的问题,屏蔽掉的宏的问题。 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AT32F425使用时需要特别注意以下几点: 1. 一旦开启高级访问保护(FAP high level)后,无法解除,并且禁止用户以任何方式重新擦除以及写入系统数据区。此外,开启高级访问保护后将禁用SWD调试接口,因此无法通过调试接口进行调试和烧录。 2. 如果需要更新代码,只能通过类似IAP方式进行更新。即需要使用类似In-Application Programming的方法来更新代码。 此外,AT32F425的头文件包含了多个路径,包括io、common、app、FreeRTOS等,需要注意在编译时正确设置宏定义和头文件路径。同时,需要解决FreeRTOS的编译问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [AT32F425系列高级访问保护注意事项](https://blog.csdn.net/u014180874/article/details/125433530)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [M-Arch(雅特力M4)【AT-START-F425测评】No.02 AT32F425开发环境搭建](https://blog.csdn.net/HBYaAnn/article/details/124162113)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值