keil+stm32cubemx+STM32F767+freeRTOS工程创建

使用该方式,能够去除繁琐的添加库文件与添加头文件路径,大大简化了freeRTOS的移植。

1.在keil安装RT-Thread:点击pack Installer按钮,在弹出的 窗口中找到Pack页面下的CMSIS-FreeRTOS,如下图所示

2. 使用Project->new uVision Project创建工程,设置工程名字,保存工程路径后选择芯片型号。

 

3. 接下来在Manage Run-Time Environment界面配置使用的库,配置使用RT-Thread与stm32cubemx,如下图 所示,点击OK后,就会自动添加RT-Thread代码。

4.配置好后,点击ok按钮,会弹出如下选择框,点击Start STM32CubeMX启动软件。

5. 进入Stm32CubeMX可以发现工程已经自动创建好了,我们需要进行必要的配置。
   首先系统正常运行必须需要时钟,使用选择HSE(根据自己的硬件选择)。

6. 再依次配置LED控制引脚与USART1(这里省略)。

             

7.进入Clock configuration页面,配置HCLK为最大的216MHz

8. 进入Project Manager页面,配置工程路径,工程名,堆栈大小,使用的IDE等,尤其是可以在Advanced setting中配置使用HAL库还是使用LL库,如下图所示

9 在Project 页面还有一项非常重要的配置,Toolchain/IDE一定要选择GPDSC,否则keil工程会编译出错,说找不到gpdsc文件

10. 点击“GENERATE CODE”按钮生成代码工程

11. 修改stm32f7xx_it.c文件

该文件主要屏蔽下面三个中断,因为这几个中断需要被FreeRTOS使用。

  • SysTick_Handler
  • PendSV_Handler
  • SVC_Handler

12 修改port.c文件

由于我们使用了HAL库,则还需要在SysTick_Handler中调用HAL_IncTick()函数,由于FreeRTOS使用xPortSysTickHandler替代了SysTick_Handler,所以需要在该函数中添加HAL_IncTick()函数,该函数在port.c文件中(该文件默认只读,需要修改属性),

void xPortSysTickHandler( void )
{
    ...
    HAL_IncTick();
    ...

}

13 根据需要配置FreeRTOSConfig.h文件,就可以愉快的使用FreeRTOS了

可参考https://www.cnblogs.com/noticeable/p/8150092.html

一般情况下需要进行如下修改

  • 包含头文件#include "stm32f767xx.h" ,该文件定义了__NVIC_PRIO_BITS需要被用到
  • configTOTAL_HEAP_SIZE 默认为4096  ,4k的栈空间干不了什么事,,这里我改成了10k(根据需要)
  • configMAX_PRIORITIES    最大优先级默认为10 ,勉强够用,但是建议改为32
  • configMAX_TASK_NAME_LEN  任务名字长度默认为10, 不太够用,稍微定义一个有意义的字符串就超过10了
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 要将Keil工程迁移到STM32CubeMx,可以按照以下步骤进行操作。首先,新建一个工程文件夹,并将STM32CubeIDE的工作空间中的空白工程文件全部复制到该文件夹中。工作空间的地址可以在STM32CubeIDE中找到。\[1\]然后,删除旧工程中的"system_stm32f4xx.c"文件。接下来,在STM32CubeMx中重新生成代码,这将自动生成一个新的同名文件,这样就成功将工程迁移到新版本中了。请注意,只能从低版本迁移到高版本,不建议从高版本迁移到低版本,因为高版本向下兼容的常识是不可行的。\[2\]在迁移过程中,可能会遇到一些兼容性问题和错误。这是因为STM32CubeMx的版本更新非常快,所以建议在更新版本后,使用新版本打开旧工程时要注意这些问题。\[3\] #### 引用[.reference_title] - *1* [STM32项目从Keil MDK迁移至STM32CubeIDE(不含LWIP和FreeRTOS)](https://blog.csdn.net/wujunfeng200808/article/details/128119979)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32CubeMx在不同版本的工程迁移时生成的代码编译出错各种multiply defined](https://blog.csdn.net/wu10188/article/details/89692407)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值