你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】UCOSIII系统移植到STM32F7中

[复制链接]
STMCU小助手 发布时间:2021-12-16 22:00
1.准备好UCOSIII的源码,可从官网下载。

2.在工程里创建文件夹UCOSIII等文件夹,并添加文件。

20180927210216237.png 20180927210239879.png 20180927211528216.png

20180927211543797.png


3.在MDK中创建路径并添加文件。

2018092721263623.png 20180927212651333.png



4.修改相关文件

a.

bsp.c和bsp.h:这两个为系统外设的初始化文件,其实可以不用。

b.

os_cpu_a.asm汇编文件:

函数类型  PUBLIC改为  EXPORT

PUBLIC  OS_CPU_FP_Reg_Push 和 PUBLIC  OS_CPU_FP_Reg_Pop两个函数可以不用,可以注释掉。

代码导引区中的

RSEG CODE:CODE:NOROOT(2)
   ;THUMB

修改为

   AREA |.text|, CODE, READONLY, ALIGN=2
    THUMB
    REQUIRE8
    PRESERVE8

这个格式跟下面的汇编语言格式相对应,并且函数名后面的冒号要去掉。

c.

lib_mem_a.asm汇编文件:

和上面一样

d.

cpu.h:

注释掉不存在的头文件;修改

#define  CPU_INT_DIS()         do { cpu_sr =CPU_SR_Save(); } while (0)
#define  CPU_INT_EN()          do { CPU_SR_Restore(cpu_sr);  } while (0)

以及

#define  CPU_MB()       _dsb(0xF)//__DSB()
#define  CPU_RMB()      _dsb(0xF)//__DSB()
#define  CPU_WMB()      _dsb(0xF)//__DSB()

e.

cpu_cfg.h:

#if 1                                                        
#define  CPU_CFG_INT_DIS_MEAS_EN                     改为 #if 0
#endif

f.

os_cpu.h:修改

#define OS_TASK_SW_SYNC()         __isb(0xF)

os_cfg.h:可以根据需要进行相应使能

g.在 上他们27xx_it.c文件中,进行滴答定时器中中断函数的配置,并保证工程中OS_CPU_PendSVHandler 和OS_CPU_SysTickHandler各处名称的一致。

  1. void SysTick_Handler(void)
  2. {
  3.         CPU_SR_ALLOC();
  4.         CPU_CRITICAL_ENTER();
  5.         OSIntNestingCtr++;
  6.         CPU_CRITICAL_EXIT();
  7.         OSTimeTick();
  8.   HAL_IncTick();
  9.   OSIntExit();
  10. }

复制代码

收藏 评论0 发布时间:2021-12-16 22:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版