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

屋脊雀 【STM32F407】- 4、rt-thread代码搬运到开发板上

[复制链接]
TLLED 发布时间:2019-1-8 20:16
本帖最后由 TLLED 于 2019-1-8 20:16 编辑 . \% ~/ b: g. M: Z% I1 r
$ S6 N2 M- w( s" W
    将th-thread 代码搬运到STM32F407开发板上。2 f1 S+ R/ f$ U/ Y/ @' {. V
    * w6 }; O" Y, b7 N
    一、下载rt-thread源码
8 G; o3 k* B( Q( s7 l- D# C: b9 @" H; @- R' F8 G9 }: ~4 A: p
        下载地址:
& J/ r; r. G. C/ c, k/ B            1.1、rt-thread官网* Z0 B& {6 ?2 @8 p
            1.2、github下载地址7 M+ d/ Z& R" y/ W; j
             1.png
. D9 T$ Q/ ?( r( Q# B3 [# d9 |& I& k9 ^' a. }! W- c2 i6 r, @

, O* V; b6 `" b1 S1 G    二、整理文件
& v/ z# ?; ~, T7 V- O3 D9 F- A5 H0 \9 j' C( p: O5 V
    2.1、rt-thread 源码下载后,拷贝出下面文件夹% L8 b* \  K' `  W+ P) N
         2.png
# \8 @2 C8 ?. M) b- s2 ]$ C# `) X    2.2、将rt-thread文件复制到自己创建的文件中,下面是我创建的项目文件目录。
) e1 ^0 R: P0 z* |. m         3.png : |  S' S& \6 {' _

5 l& g4 i( V* g5 S; k
2 j8 g& d# a+ m) F( l
   三、创建项目文件
5 A: h! J0 j2 s* b$ J. n/ B0 b; w% g2 W/ h% w! \1 P! w+ }
    3.1、将rt-thread源码文件添加到对应的文件
' f6 q1 c+ Y" ?& X. W8 l0 C         4.png ! b. n, \. B# o! y9 A% X0 R
    3.2、添加头文件$ O# a5 ^7 s& w+ s. N: e
          5.png * B) N" c0 H) R- L% z& L% g7 h- A
    3.3、修改代码
9 _7 R, P: C' F* L0 z: |    代码主要修改的地方:
( P4 z2 \7 _( j7 ~* `" h' ~, v$ R# o/ ?* x
   1、main.c的程序添加部分' d8 x* m' Q1 g# r7 Y) r0 @
      main.c
* |7 h/ M/ [% x$ y: A% {    int main(void)/ {& u' `6 a  q: o" q+ G: v4 ?
{
* L" f: o& w1 W+ ?; j8 F; e1 ?8 O        /* disable interrupt first */  [/ g2 G. l6 {
    rt_hw_interrupt_disable();      //添加代码
. R, y8 ~8 E, y/* startup RT-Thread RTOS */; x1 J) {2 T2 P+ Z  a& u
    rtthread_startup();     //添加代码2 Z+ N0 _3 s8 L. v/ K* Z- S
% J% R# P& K; X9 M2 V* o$ i. @7 f
  while (1)
* ]/ Z% S' C6 @# E! m0 |1 P6 V+ j  {
3 i, _& E9 `6 I9 m  }
/ y6 {' j- @+ \  `+ I& k}& E" ]& A5 }# J  U3 P
   5 Q6 T. F3 F# Q. v7 t' r
   2、硬件初始化,有关串口部分。+ s; P+ ]4 d- X; W- F/ E, u
    void rt_hw_board_init()
' {" D# J+ I% p{5 }4 Z# C7 N# k! R4 q, z7 D
    /* NVIC Configuration */
6 `: K! e' ?3 E    NVIC_Configuration();2 M( ]/ q/ y+ ?3 f9 n

  ^! ^7 V' \& l
* ~9 _$ W& c8 s! M& L8 |
    /* Configure the SysTick */8 X- L$ o. Y' l. a
    SysTick_Configuration();
: Q. Z- ?8 }2 j$ L        
) d  X' ~) ~2 l% G* X6 P        
9 g3 R9 N2 A* D; X$ B3 g                stm32_hw_usart_init();                                                //串口初始化
/ l: w! A1 W5 b# y+ ?0 Y                rt_console_set_device(RT_CONSOLE_DEVICE_NAME);6 _! l' N0 p8 G* a
# J# L$ y. ]5 B" K- D) N

" E8 Q# i  x& H0 J8 D0 X#ifdef RT_USING_HEAP
7 D/ i0 Z9 `" [( d1 r4 ~6 y    rt_system_heap_init((void*)STM32_SRAM_BEGIN, (void*)STM32_SRAM_END);
6 P, Z- `5 r" h#endif. ^# k  ], ~; e- r" E
   
  F* Y; M4 y0 N- s3 T: [" H    rt_components_board_init();
' G* P% w7 R( w- Z1 V
5 `+ A, n9 s+ s8 _1 z( Q! q: Z#ifdef RT_USING_CONSOLE. o4 y' T: a4 h
    rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
* y2 P. t) R; z5 n9 J% G8 t0 {#endif        ! z% u% H1 s  d3 p/ t
}
! u! f* x& z. y( R, S6 Z& d     3、根据硬件修改串口代码。
1 ^- s7 W9 \! ?     串口硬件端口使用的是PB端口
3 s9 d' ^# s/ N2 Z/ w. G* g# x      6.png ' }/ g! V# v; F6 x7 d
   % U3 z$ j$ ~$ l
    修改端口程序    1000.png 4 r+ j" h3 ?1 u- k

, i' F+ o' o) r8 {' P+ I+ v    修改外部晶振频率,板子上的时钟频率是8MHz,这里要修改为8MHz 6 H0 a9 |# \/ s9 ]( _2 d
    1002.png , B: N" ]) X  l- z  T
    1001.png
, P! I' X, {+ t) |" p. l
8 r( _" h- Z4 j    四、程序执行结果

6 R1 F% d9 L  {    # Z! ]4 T! P8 O& X- J! J
    程序还没有应用程序,只是打印出rt-thread信息。/ K8 Z6 _  C% M" m+ R  g9 R
    串口输出结果:" x. k! p' N7 W7 }: C$ W- U: [
    1003.png . @/ i/ @0 f; P7 e. b+ X5 D3 Y
   + a" [6 C+ j7 A+ o6 F  M: T
    五、程序代码/ g2 Z- J5 [6 l  e0 l4 I
    / z2 o  F1 l" ?8 w7 Y
    STM32F407-rt-thread.part01.rar (19 MB, 下载次数: 0)
赞 收藏 评论1 发布时间:2019-1-8 20:16

举报

1个回答
3111272 回答时间:2019-1-9 08:48:26
楼主可以尝试一下这个方法http://github.com/RT-Thread/rt-t ... 6%95%99%E7%A8%8B.md。BSP制作好了,再使用scons --dist

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版