ChibiOS/RT移植到STM32F407

发布者:MysticSerenade最新更新时间:2022-05-05 来源: eefocus关键字:移植  STM32F407 手机看文章 扫描二维码
随时随地手机看文章

找到STM32F407的demos程序(chibiosdemosSTM32RT-STM32F407-DISCOVERY)


/*

 * This is a periodic thread that does absolutely nothing except flashing

 * a LED.

 */

static THD_WORKING_AREA(waThread1, 128);

static THD_FUNCTION(Thread1, arg) {


  (void)arg;

  chRegSetThreadName("blinker");

  while (true) {

    palSetPad(GPIOD, GPIOD_LED3);       /* Orange.  根据个人开发板配置*/

    chThdSleepMilliseconds(500);

    palClearPad(GPIOD, GPIOD_LED3);     /* Orange.  */

    chThdSleepMilliseconds(500);

  }

}


/*

 * Application entry point.

 */

int main(void) {


  /*

   * System initializations.

   * - HAL initialization, this also initializes the configured device drivers

   *   and performs the board-specific initializations.

   * - Kernel initialization, the main() function becomes a thread and the

   *   RTOS is active.

   */

  halInit();

  chSysInit();


  /*

   * Activates the serial driver 2 using the driver default configuration.

   * PA2(TX) and PA3(RX) are routed to USART2.

   */

  sdStart(&SD2, NULL); //SD2,代表UART2

  palSetPadMode(GPIOA, 2, PAL_MODE_ALTERNATE(7)); //UART TX

  palSetPadMode(GPIOA, 3, PAL_MODE_ALTERNATE(7)); //UART RX


  /*

   * Creates the example thread. 创建线程

   */

  chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);


  /*

   * Normal main() thread activity, in this demo it does nothing except

   * sleeping in a loop and check the button state.

   */

  while (true) {

    if (palReadPad(GPIOA, GPIOA_BUTTON))

      TestThread(&SD2);

    chThdSleepMilliseconds(500);

  }

}


使用烧写工具烧写。效果是串口不断打印TestThread中的信息,LED不断闪烁


关键字:移植  STM32F407 引用地址:ChibiOS/RT移植到STM32F407

上一篇:stm32 CAN过滤器组
下一篇:zubax_gnss移植到STM32F407

推荐阅读最新更新时间:2024-11-12 10:21

STM32F407 lwip速度测试
硬件:正点原子探索者开发板 下位机:lwip1.4裸跑 上位机:JPerf2.0.2 测试结果:最快传输速到达到10.2MBytes,平均带宽80.7Mb/s 稳定速度:传输速到达到8.55MBytes,平均带宽72.1Mb/s 所用lwip配置如下: #ifndef __LWIPOPTS_H__ #define __LWIPOPTS_H__ #define SYS_LIGHTWEIGHT_PROT 0 //NO_SYS==1:不使用操作系统 #define NO_SYS 1 //不使用UCOS操作系统 //使用4字节对齐模式 #define MEM_ALIGNMENT 4
[单片机]
<font color='red'>STM32F407</font> lwip速度测试
U-Boot 在44B0X 开发板上的移植以及代码分析
1. u-boot 介绍 u-boot 是一个open source 的bootloader,目前版本是1.1.2。u-boot 是在ppcboot 以及armboot 的基础上发展而来,相当的成熟和稳定,已经在许多嵌入式系统开发过程中被采用。由于其开发源代码,其支持的开发板众多。 为什么我们需要u-boot?显然可以将uClinux 直接烧入flash,从而不需要额外的引导装载程序(bootloader)。但是从软件升级的角度以及程序修补的来说,软件的自动更新非常重要。事实上,引导装载程序(bootloader)的用途不仅如此,但仅从软件的自动更新的需要就说明我们的开发是必要的。同时,u-boot 移植的过程也是一
[单片机]
内核移植(1)首次生成uImage映象文件
1、先修改顶层Makefile,如下: ARCH ?= $ (SUBARCH) CROSS_COMPILE ?= 改为: ARCH ?= arm CROSS_COMPILE ?= arm-linux- 2、执行make s3c2410_defconfig 3、make uImage,首次编译完内核用了4分钟,尾部出现如下信息: LD arch/arm/boot/compressed/vmlinux OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready UIMAGE arch/arm/boot
[单片机]
u-boot-2009.08在mini2440上的移植 增加nor flash功能
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-eabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 通常,在嵌入式bootloader中,有两种方式来引导启动内核:从Nor Flash启动和从Nand Flash启动。u-boot中默认是从Nor Flash启动,再从上一节测试运行的结果的中看,还发现几个问题:第一,我开发板的Nor Flash是2M的,而这里显示的是5
[单片机]
u-boot-2014.10移植(7)修改环境变量的存储位置
原来环境变量存储在nor flash里, 前面mtdparts分区第二个分区就是params 现在修改环境变量到nand里, 搜索default environment 在Env_common.c函数里面: default_environment结构体 default_environment结构体定义在env_common.c里面 其中有: #ifdef CONFIG_BOOTARGS bootargs= CONFIG_BOOTARGS #endif 这里CONFIG_BOOTARGS没有定义,bootargs是传给内核的环境变量,在smdk2440.h里面定义CONFIG_BO
[单片机]
u-boot-在2440上的移植详解(一)
一、移植环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器: arm-linux-gcc-4.3.2.tgz u-boot: u-boot-2009.08.tar.bz2 二、移植步骤 本次移植的功能特点包括: 支持Nand Flash读写 支持从Nor/Nand Flash启动 支持CS8900或者DM9000网卡 支持Yaffs文件系统 支持USB下载(还未实现) 1. 了解u-boot主要的目录结构和启动流程,如下图。 u-boot的stage1代码通常放在cpu/xxxx/start.S文件中,他
[单片机]
u-boot-在2440上的<font color='red'>移植</font>详解(一)
STM32f103 ds18b20 驱动程序移植
span style= font-family:Arial;background-color: transparent; /span 头文件 *******************************************/ #ifndef __BSP_DS18B20_H #define __BSP_DS18B20_H #include stm32f10x.h #include SysTick.h /******************************DS18B20 函数声明**************************************/ void DS18B20_GP
[单片机]
u-boot2011.12在mini2440上的移植1
以u-boot中的smdk240为原型移植到mini2440, gcc版本4.4.3,u-boot版本2011.12 1. 复制board/samsung/smdk2410 到board/samsung/mini2440; 将board/samsung/mini2440下的smdk2410.c重命名为mini2440.c; 修改board/samsung/mini2440的Makefile,将COBJS := smdk2410.o改为COBJS := mini2440.o; 2. 复制include/configs/smdk2410.h到include/configs/mini2440.h 3. 在根目录下的boa
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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