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

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

[复制链接]
STMCU小助手 发布时间:2021-12-16 22:00
1.准备好UCOSIII的源码,可从官网下载。
1 o( K/ f1 v5 H, J& ^4 N$ S
) }) O7 t. I( w' M+ r2.在工程里创建文件夹UCOSIII等文件夹,并添加文件。
$ n1 X' \/ _' k  ~; Z& ], K5 t: M, i/ p
20180927210216237.png 20180927210239879.png 20180927211528216.png
9 A6 t, @- k$ T% A3 x
20180927211543797.png

% v3 A; R2 P' {" F+ A' l3 Q8 L# \, G8 t$ |4 k- |
3.在MDK中创建路径并添加文件。- O; J' N, P' l+ G
. G, [, y$ E! y' N# K4 o
2018092721263623.png 20180927212651333.png

( s6 M3 [+ m/ Z5 b4 O9 a
- y" w4 s1 b/ _% n4 [% w* {: S: C: ~* \1 w! I: q5 B* L
4.修改相关文件4 H" A2 {, E! }; x% L
) t* I8 s5 {' I3 N5 Y% M; a; ^
a.
, m% j/ h& }7 N# ^6 K. n" Z1 \
: A  f2 \) V% x8 x5 F& T* xbsp.c和bsp.h:这两个为系统外设的初始化文件,其实可以不用。
. t# q3 e7 ~2 y3 @- Z% S# }* e0 Q* D  `- I
b.2 I; ~+ P, g& u4 G" c  O
9 j4 D& A3 z* y0 B0 B
os_cpu_a.asm汇编文件:4 l: k4 S( M1 @( a# Y

1 ]# f; |" K- Y- s0 k' H: p* `函数类型  PUBLIC改为  EXPORT
) e, X9 Y$ q/ O( F$ V
9 j- G7 j% x6 Z7 F$ d0 G, ~$ gPUBLIC  OS_CPU_FP_Reg_Push 和 PUBLIC  OS_CPU_FP_Reg_Pop两个函数可以不用,可以注释掉。5 s  I% V' m9 q/ V: |* G

; u) O# @1 z4 l, I, A5 k代码导引区中的
: W4 t% M9 a# \' r: |, S- b% b0 K$ W& A  e# B- U
RSEG CODE:CODE:NOROOT(2)" n+ L/ {! C- @; }2 P' Q2 a, O
   ;THUMB
* V# A1 R# v8 E3 _' @. x: U3 S' i% p2 D
修改为! e1 p. z0 x5 ^
% B+ b" M0 |) s1 c; y) G
   AREA |.text|, CODE, READONLY, ALIGN=20 I8 Q3 |9 L2 e( |- c% {
    THUMB
) l7 G9 l  v: g  y* l/ {    REQUIRE8
9 T; i  q2 J7 U5 S' x    PRESERVE8
6 w8 S+ G4 b! x% k+ s1 N8 T4 m! K# C* j9 o& V
这个格式跟下面的汇编语言格式相对应,并且函数名后面的冒号要去掉。$ n% Z3 ]/ a/ o7 F7 W2 w

$ O, p! a7 i5 _. Y1 \- @$ ?c.
% w" Y4 |+ W$ w( k; [* A' `% w* E5 w, I. F# B2 \
lib_mem_a.asm汇编文件:' T& m- P' P- G' j

# _! O% ^0 z( U( j和上面一样
* S. w& {: r& @* o$ [2 ?2 ~2 h$ t( c
d.4 ~3 z, {3 ^" s3 {6 ]- }4 t) H

3 }0 r7 y% x# H; V: k8 }6 }cpu.h:
: `* W4 X: {% X( B% D& ^4 z) |0 E! t" y, G
注释掉不存在的头文件;修改( U7 g* N/ E: P6 [( H$ {
4 \( D( S0 p5 R5 @5 x; j+ g9 E
#define  CPU_INT_DIS()         do { cpu_sr =CPU_SR_Save(); } while (0)
; _+ ?% o8 i" z- K8 f8 M( H#define  CPU_INT_EN()          do { CPU_SR_Restore(cpu_sr);  } while (0) 4 c, V) r* m/ N% @' ~* ^5 g) ]. l

! J2 ]2 \; Q6 S! X( d+ x以及
( _* R" P5 m$ s* I/ }& S  O4 m2 V6 Q2 G3 _+ D% `- b% f
#define  CPU_MB()       _dsb(0xF)//__DSB()* o3 h, w4 o* T7 R! r7 O
#define  CPU_RMB()      _dsb(0xF)//__DSB()  c2 r+ H! A! k. G' Q  S" {
#define  CPU_WMB()      _dsb(0xF)//__DSB(); ^% R7 Q" X8 d  t  Q

9 A  f$ g, `% Z# p- E; l4 De.3 g) ~9 e# I0 D8 P8 B% x

3 u$ q2 a! N2 Zcpu_cfg.h:* {2 |" m8 Q. S

; V  k: E: r2 i. I9 G#if 1                                                        
- T$ r9 o, O" q. R# I#define  CPU_CFG_INT_DIS_MEAS_EN                     改为 #if 0& m; L$ F' _; L+ _' }  u  P( S
#endif# r8 q5 ^. e! `$ o( ?9 E, V+ u

0 N  S3 u3 t6 |& f3 A% Kf.% P8 S: U8 u, a4 p( w+ \2 C/ J/ w
; w& x! ~4 \: d
os_cpu.h:修改
' `& R- t$ t3 d& `. |. Y/ ~$ {# n% z, {. C2 Y
#define OS_TASK_SW_SYNC()         __isb(0xF)
5 p4 {+ k+ Q' e' q: y7 B8 [" R# a" p6 b8 D1 j, d6 v' X. O7 E4 r
os_cfg.h:可以根据需要进行相应使能6 z( O7 }. f4 N& @1 `) i8 }

2 ~" q+ G, w8 O. G& |4 h1 H' ug.在 上他们27xx_it.c文件中,进行滴答定时器中中断函数的配置,并保证工程中OS_CPU_PendSVHandler 和OS_CPU_SysTickHandler各处名称的一致。
" x$ }1 [# G4 ?+ r% ]5 R! K) z& y5 C' \, S# `: C: O
  1. void SysTick_Handler(void)
    - }; Z5 a) U  _/ ?
  2. {3 F! s" d* b% B" P6 g2 r
  3.         CPU_SR_ALLOC();1 s$ S7 k/ w8 b. d' M2 W! M/ D6 D
  4.         CPU_CRITICAL_ENTER();
    5 r7 G, C6 z# V2 X! ^& [1 q( B
  5.         OSIntNestingCtr++;$ ?" `; B- `& h, S2 W& r% @( U0 b
  6.         CPU_CRITICAL_EXIT();
    ( Y6 m' e2 [/ c* L8 u& T
  7.         OSTimeTick();1 R% q0 y7 M$ Z4 a
  8.   HAL_IncTick();) u4 f6 c( N% w7 U; v! v9 `" l
  9.   OSIntExit();, h$ Q8 Q4 N! e! D$ W" i' j
  10. }  n1 f9 X5 [+ ?* O* ]5 C

  11. $ I( j+ Y  u7 |; V2 {/ w1 ~! E* P
复制代码

: C( }3 }' B0 ]& S9 O
收藏 评论0 发布时间:2021-12-16 22:00

举报

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