stm32f429 移植RT_Thread

发布者:jingyun最新更新时间:2016-08-14 来源: eefocus关键字:stm32f429  移植  RT_Thread 手机看文章 扫描二维码
随时随地手机看文章
RTT作为一个中国的开源实时操作系统,经过国内一些专业人士的充实,现在其已经支持大部分MCU以及X86
当然现在用的很火的STM32也不例外;RTT最大的特点就是线程数不限,支持以线程为基本调度单位的多任务系统。调度算法是基于优先级的全抢占式线程调度,支持256个线程优先级(亦可配置成32个线程优先级),0优先级代表 最高优先级,255优先级留给空闲线程使用;相同优先级上支持多个线程,这些相同优先级的线程采用可设置时间片长度的时间片轮转调度;调度器寻找下一个最 高优先级就绪线程的时间是恒定的(O(1))。系统不限制线程数量的多少,只与物理平台的具体内存相关。
现在2014.2月,RTT已经更新到1.2.0版本,当然现在STM32也出了最新的429/439,但是RTT里只支持了40X;但是40X与429/439在硬件上区别不是很大这样我们就可以用40X作为模板进行移植了。
在移植之前大家要知道,RTT是靠scons来编译和生成keil或者IAR的工程文件的,所以用scons这个工具在移植时比较方便,不必自己去找那些文件。
在此之前确保自己电脑上已经安装了Python和scons:下载的地址 Python:http://www.python.org/download/ (在此我用的是Python2.7)
scons: http://www.scons.org/download.php  选择适合自己系统版本
先安装Python;再把Python的安装路径添加到系统的PATH中;再安装scons一路next;会自动安装到:XXX\Python27\Scripts目录下,再把这路径添加到系统PATH中;弄好了后分别在cmd下运行一下Python -v,scons -v看安装是否成功。
接下来去RTT官网下载源码,一般首页的右上角就会有下载链接:下载下来后解压到一个盘的根目录:改名为RT_Thread,比如D:\RT_Thread;在系统的系统变量中添加一个RTT_ROOT 变量,把自己刚刚那个路径填进去,运行一下set RTT_ROOT,看是否成功。
再把stm32f429的库函数下载下来。
现在回到刚刚放RT_thread文件的中去:
stm32f429 移植RT_Thread - stubbron - ChinaHEAVEN
bsp里就是可以支持芯片的工程模板;里面有一个 stm32f40x目录,把它拷贝出来,为了不破坏原来的文件;之前说了RT_Thread是靠scons来编译或者建立keil工程的,和linux的Makefile有些相似之处,在这个目录下有几个比较重要的文件:
stm32f429 移植RT_Thread - stubbron - ChinaHEAVEN
 一个是rtconfig.h,就是通过这个文件添加和删减系统组件的;还有一个是template.uvproj这是生成的keil工程的模板,可不要删了。接下来用写字板打开 rtconfig.py 文件,他就是定义编译器这些的巨像Makefile,我们用的是keil,修改一下 keil 的安装路径,看看自己keil装到哪了,如果一致就不用改了。实打开每个文件夹下面都一个SConscript文件,这个就是让文件关联起来的文件,大家仔细看看就知道它是如何工作的了;
大家可以看看rtconfig.h文件,看了就知道是怎么注册一个组件,删减一个组件;默认就开了一个finsh,我们就先移植这个简单的。
打开命令行cmd ,切换到stm32f40x目录下,执行 scons --target=mdk4 –s ,这下就把keil工程建建好了,keil打开工程;大家会发现keil的设置有些问题,我们手动改一下,就是芯片选型,还有就是外部晶振。这两个改好后;我们看看工程文件:
stm32f429 移植RT_Thread - stubbron - ChinaHEAVEN比较整洁吧,比自己手动移植干净的多,打开Drivers里面的board.c/ board.h就是初始化板子,看看board.h中会发现板子用的是USART2,而且内存也不对,下边红的就要改的(如果你用的是usart就不用改),如果用的不是默认引脚,那再打开usart.c把引脚一改。
// Internal SRAM memory size[Kbytes] <8-64>
// Default: 64
#define STM32_SRAM_SIZE         192    //stm32f429 是 256K 在0x20000000后有192K 在0x10000000还有64k
#define STM32_SRAM_END          (0x20000000 + STM32_SRAM_SIZE * 1024)
#define RT_USING_UART1
//#define RT_USING_UART2
//#define RT_USING_UART3
// Console on USART: <0=> no console <1=>USART 1 <2=>USART 2 <3=> USART 3
//  Default: 1
#define STM32_CONSOLE_USART 1
 
下一个文件夹STM32_Stperiph:这个文件改的多一点,因为和STM32F429的库文件有些不合,先把这个目录下的文件都移除;看看最后的那个startup汇编文件也不对,之前不是下载了stm32f429的库文件嘛,把429要的库文件替换STM32_Stperiph下的文件,把里面的startup_stm32f429_439xx.s替换原来的startup_stm32f4xx.s,分别在在刚刚拷贝出来的文件里stm32f40x\Libraries\STM32F4xx_StdPeriph_Driver\inc src和
stm32f40x\Libraries\CMSIS\ST\STM32F4xx\Source\Templates\arm目录下。再把这文件的文件添加到STM32_Stperiph下。
那么我们先编译一下,会发现有错误,为什么呢?因为我们忘了还有一个文件忘改了,那就是stm32f4xx_conf.h;它在stm32f4xx\drivers目录下,把新下的库文件里面的stm32f4xx_conf.h拷贝过来。
在编译一次,应该就可以通过了,下载下去就可以看见串口打印出信息了。
 
再次要确定自己的晶振是不是25MHz,如果是8MHz就必须在stm32f4xx_conf.h中加上:(这是在readme.txt有说)
#if defined  (HSE_VALUE)
/* Redefine the HSE value; it's equal to 8 MHz on the STM32F4-DISCOVERY Kit */
 #undef HSE_VALUE
 #define HSE_VALUE    ((uint32_t)8000000)
#endif /* HSE_VALUE */

关键字:stm32f429  移植  RT_Thread 引用地址:stm32f429 移植RT_Thread

上一篇:stm32f10x中断优先级
下一篇:STM32之定时器应用

推荐阅读最新更新时间:2024-03-16 15:05

μCOS-Ⅱ在ARM系列单片机S3C44B0x上的移植
引 言 目前,嵌入式系统在工业控制、家用电器、移动通信、PDA等各种领域得到了越来越广泛的应用。由于用户对嵌入式产品的性能要求越来越高,程序设计也变得越来越复杂,这就需要一个通用的嵌入式实时操作系统来对其进行管理和控制。对移植了操作系统的嵌入式系统进行设计和开发,可以大大减小程序员的负担,对于不同的应用可以按照相同的步骤来完成系统的设计。 μC/OS-Ⅱ是一种简单高效、源代码公开的嵌入式实时操作系统,具有良好的可扩展性和可移植性,被广泛的应用到各种嵌人式处理器上。μCOS-Ⅱ操作系统拥有可固化,可裁剪,可剥夺性的实时内核,可同时管理64个系统任务。利用移植μCOS-Ⅱ操作系统的嵌入式微处理器来设计和开发产品,对于提高产品
[单片机]
μCOS-Ⅱ在ARM系列单片机S3C44B0x上的<font color='red'>移植</font>
RTEMS在S3C2440上的移植-(5)
在TQ2440上运行编译生成的Hello World 编译并将编译得到的文件.exe或.bin文件放至合适的位置运行是开始制定三步走计划的第三个步骤。由于生成的文件为.bin文件,猜想是否可以和TQ2440的裸机程序一样通过天嵌官方提供的U-Boot给出的选项直接将程序拷贝到SDRAM中运行?故而进行了以下实验: 1.首先从centos中将.bin文件拷贝到windows中(目前使用的方法还是比较土的,以后研究方便些的方法)。 2.启动天嵌公司提供的DNW工具。 3.连接好开发板的各种连接线,如电源线、串口线、USB线。给开发板供电,并打开开关。此时在DNW上会显示串口信息,选择选项7(见图一)
[单片机]
RTEMS在S3C2440上的<font color='red'>移植</font>-(5)
TE2410移植linux-2.6.14及调试过程总结(2)
今天写总结再来分析一下s3c2410_nand_calc_rate函数,终于知道问题在哪了,之前的打印内容如下: plat- tacls:0 plat- twrph0:3 plat- twrph1:0 tacls:1 twrph0:1 twrph1:1 clkrate:100000000/*注意是8个0,实际就是是HCLK=100MHz*/ #define NS_IN_KHZ 10000000 /*注意是7个0*/ static int s3c2410_nand_calc_rate(int wanted, unsigned long clk, int max) { int result; res
[单片机]
U-boot-2014.04移植到MINI2440(7) nand flash datasheet及arm9控制寄存器分析
我的MINI2440上有一个256M的nand flash,后面我们需要从nand启动u-boot,然后引导加载内核,再挂载根文件系统,这里先对其做一个较为细致的认识。主要是硬件管脚定义,控制方式,处理器的控制寄存器对其做一个了解,因为现在市面上nand的用途比较广泛,数码相机,mp3都要使用,进入正题。 一.nand flash datasheeet 在移植好的u-boot下输入nand info会出现下面的信息: Device 0: NAND 256MiB 3,3V 8-bit, sector size 128 KiB 这说明nand大小为256M,工作电压3.3v,数据总线为8位,扇区大小为128K。首先我们
[单片机]
U-boot-2014.04<font color='red'>移植</font>到MINI2440(7) nand flash datasheet及arm9控制寄存器分析
RT-Thread移植使用webserver (lwip+httpd)
开发环境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的资源包为0.2.2,rt-thread版本为4.0.3。 以RT-Thread中Lan8720和lwip协议栈的使用文章创建的工程为基础。 httpd(The Apache HTTP Server)的官方网址。 在rtthread工程中新建文件夹webserver,存放webserver相关文件。 在正点原子例程网络实验10 NETCONN_WEBserver实验中的LWIPlwip_appweb_server_demo 文件夹 下的文件拷贝到文件夹webserver。如下图: 对工程进行编译,工程报错。根据报
[单片机]
RT-Thread<font color='red'>移植</font>使用webserver (lwip+httpd)
uC/OS-II在ARM系统上的移植与实现
摘要:使用ARM公司提供的ADS 开发工具,将uC/ OS - II 移植到ARM 处理器上,并将移植结果应用在跑马灯和数码管的实现上,运行正常,表明移植成功. 关键词:uC/ OS - II ;ARM;移植 0  引言 在开发嵌入式系统时,一般选择基于ARM 和uC/ OS - II 的嵌入式开发平台,因为ARM 微处理器具有处理速度快、超低功耗、价格低廉、应用前景广泛等优点 . 将uC/ OS - II 移植到ARM 系统之后,可以充分结合两者的优势. 如果一个程序在一个环境里能工作,我们经常希望能将它移植到另一个编译系统、处理器或者操作系统上,这就是移植技术.移植技术可以使一种特定的技术在更加广泛的范围使用,使软件使用更
[应用]
u-boot-2014.10移植(2)设置时钟/SDRAM
时钟修改 vim arch/arm/cpu/arm920t/start.S # if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) ldr r1, =0x3ff ldr r0, =INTSUBMSK str r1, /* FCLK:HCLK:PCLK = 1:2:4 */ /* default FCLK is 120 MHz ! */ ldr r0, =CLKDIVN mov r1, #5 str r1, /* add by Flinn */
[单片机]
ADI公司推出引脚兼容电能计量IC便于移植到新设计
美国模拟器件公司最新推出三款三相电能计量集成电路(IC)ADE7752A, ADE7752B和ADE7762,从而为低功耗和计费精度至关重要的民用和工业应用提供了最佳性能。这些IC产品利用脉冲输出直接驱动计费总表或分表、三相电动机或发电机、工业控制和电力自动控制中的步进电机计度器显示以提供瓦时(Whr)电能信息。这种脉冲输出功能还可用于驱动液晶显示电能表中的微控制器(MCU)。 ADE7752A和ADE7752B与ADE7752引脚兼容,但是它们仅需40mW功耗,其功耗比同类产品降低30%。ADE7762有4个附加的引脚可用于电能质量监测,从而允许电能表用来分别指示各相是否存在反相和缺相以及相序错。这些新功能够使电力公司收集更多
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved