正点原子rt thread环境快速搭建入门教程_第1页
正点原子rt thread环境快速搭建入门教程_第2页
正点原子rt thread环境快速搭建入门教程_第3页
正点原子rt thread环境快速搭建入门教程_第4页
正点原子rt thread环境快速搭建入门教程_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本和配套源码由正点原子团队和RT-Thread团队联合编写,为大家学RT-ThreadSTM32RT-ThreadRT-ThreadRT-Thread码和学习,敬请耐心等待。开 何为RT-ThreadNano?大家知道,Keil5以后采用pack形式管理及各种相关组件的。RT-ThreadNano就是通过Keilpack方式发布,在保持原有Flash可2.5K,Ram可以1K。目前pack包含有kernel、s(msh)、devicedrivers三部分功能,这3个功能可按实际使用情况按需加载。一、RT-ThreadNanoPack安库,F429和F767为HAL库)。在MDK5主界面上点击“PackInstall”按钮,PackInstall界1:MDK5在PackInstall界面下,RT-ThreadPack在右边栏中。如未,可点击“Install”;如已安装,版本有更新,将提示“Update”可更新。图2:RT-获取RT-ThreadPack。 k2.1.1RT-ThreadPack,完成后,将可看到RT-ThreadPack。Pack完成后Keil将自动弹出Pack图3:Pack二、kernel1.1.RT-ThreadKernel:在主界面点击“ManageRun-TimeEnvironment” 图4:ManageRun-Time本为3.1.5。5:RT-Threadkernel2.,keilRT-Threadkernel 6:RT-Threadkernel此时编译时,编译器会定位到错误board.c7:rt_hw_board_initvoid{void{} 修改main.c文件,加入RT-Thread#include#include#include"led.h"void*para){LED0=LED0=}}void*para){LED1=LED1=}}int{rt_thread_tth_led0,th_led1;th_led0=RT_THREAD_PRIORITY_MAX*2/th_led1=RT_THREAD_PRIORITY_MAX*2/}rt_thread_create函数创建了两个线程th_led0th_led1,对应线和LED1的状态翻转。然后通过rt_thread_startup函数分别启动这两个线程。最后我们通过ST-LINK将程序到开发板,可以看到LED0和LED1轮流翻转。实验现象不一致,请参考对应开发板配套源码。

四、RT-Thread我们可以在components.c文件的131行看到#ifdefRT_USING_USER_MAIN137#ifdefined(CC_ARM)的宏定义判断,CC_ARM指keil的交叉编译器名称。后通过$Super$$main再次回到main()#if#ifdefined(CC_ARM)||defined(CLANG_ARM)externint$Super$$main(void);int$Sub$$main(void){return0;}在这里,$Sub$$mainrtthread_startup()函数。RT-Thread支持rtthread_startup()RT-Thread规定的统一入口点,所以$Sub$$main函数只需调用rtthread_startup()函数即可。例如采用GNUGCC编译器编译的RT-Thread,就是直接从汇编启动代码部分跳转到rtthread_startupCcomponents.c的代码中找到rtthread_startup()函数,可以看到RT-Thread的启动流程:intint{/*boardlevel*NOTE:pleaseinitializeheapinsideboard/*timersysteminitialization*//*timerthreadinitialization*//*idlethreadinitialization*//*startscheduler*/return0;}RT-Thread的设备框架做的初始化;rt_hw_board_init():board.csystickrt_system_timer_init()/rt_system_timer_thread_init():timer初始化/启rt_thread_idle_init():idle任务创建voidvoid{tid=/*ifnotdefineRT_USING_HEAP,usingtoeliminatethewarning*/}/*the/*thesystemmainthread{externintexternint#ifdefined(CC_ARM)||defined(#elifdefined(ICCARM)||defined(GNUC)}main_thread_entry2ponents_init()、进入main$$Super$$main()的调用,面我们讲了调用该函数可用来回到main()的。9RT-Threadrtconfig.hRT_USING_USER_MAINmain$$Sub$$m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论