初出茅庐的小李博客之TobudOS移植到EVB_AIoT开发板

2023-12-10 06:04

本文主要是介绍初出茅庐的小李博客之TobudOS移植到EVB_AIoT开发板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本博客参考教程:

https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md

介绍一下EVB_AIoT开发板

在这里插入图片描述
这个开发板是由TobudOS开源社区联合意法半导体、南京厚德物联网设计的一款高性能IoT开发平台,主控芯片是STM32H750XBH6。

开发板特性

内置 TobudOS 开源物联网操作系统

意法半导体高性能处理器,最高主频 480M

1M RAM; 256Mbits SDRAM; 128K 片上Flash;64MB qspi flash 128MB spi flash

板载 Type-C 接口 Stlink V2 仿真器

板载 PCIE 接口,可扩展 4G 类物联网模组

板载物联网俱乐部 WAN Interface 接口,可支持 NB-IoT、WiFi、4G cat1、LoRa 等模组

板载物联网俱乐部 E53 Interface 接口,可扩展全系 E53 传感器

板载标准 24P DVP 摄像头接口,可支持最高 500 万像素摄像头;

板载 RGB 显示接口,可转换 HDMI 输出;

板载高性能音频解码芯片,可做语音识别测试;

预留 SD 卡、用户按键、SPI Flash

调试 ARM Cortex M 核还需要仿真器,EVB_AIoT_STM32自带 Stlink V2 仿真器,如果您的开发板或者芯片模组没有板载仿真器,就需要连接外置的仿真器,如 J-Link、U-Link 之类的。

编译环境的准备

用在Keil上的支持包
下载地址:https://www.keil.arm.com/packs/stm32h7xx_dfp-keil/boards/

在这里插入图片描述

准备移植的裸机工程

使用 ST 官方的 STM32CubeMX 软件来自动化生成 MDK 裸机工程

在这里插入图片描述

配置一个LED灯跟一个打印的串口

在这里插入图片描述

在这里插入图片描述

裸机代码:

 /* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_GPIO_TogglePin(USER_LED_GPIO_Port, USER_LED_Pin);HAL_Delay(1000);}

这样 EVB_AIoT_ATM32开发板的裸机工程生成完成,该工程可直接编译并烧写在板子上运行。

移植 TobudOS 的源码

在这里插入图片描述
tos_cpu.c 是 TobudOS 的 CPU 适配文件,包括堆栈初始化,中断适配等,如果您的芯片是 ARM Cortex M 核,该文件可以不做改动,M0、M3、M4、M7 是通用的,其他 IP 核需要重新适配;
port_s.S 文件是 TobudOS 的任务调度汇编代码,主要做弹栈压栈等处理的,port_c.c 适配 systick 等,这两个文件 每个 IP 核和编译器都是不一样的,如果您的芯片是 ARM Cortex M 核,我们都已经适配好,比如现在我们移植的芯片是 STM32H750,是 ARM Cortex M7核,使用的编译器是 KEIL,所以我们选择 arch\arm\arm-v7m\cortex-m7\armcc 下的适配代码,如果你的开发板是 STM32F429IG,M4 核,编译器是 GCC,则可以选择 arch\arm\arm-v7m\cortex-m4\gcc 目录下的适配文件。

最终的目的是把需要的C文件添加进去,把需要的依赖头文件路径包含

源文件

在这里插入图片描述

头文件包含

在这里插入图片描述

如果编译出错 修改config文件 或者就用之前自带的不修改

在这里插入图片描述

串口重定向要勾选微库

在这里插入图片描述

编写两个测试任务


#define TASK1_STK_SIZE       1024
k_task_t task1;
uint8_t task1_stk[TASK1_STK_SIZE];#define TASK2_STK_SIZE       1024
k_task_t task2;
uint8_t task2_stk[TASK2_STK_SIZE];void task1_entry(void *arg)
{while(1) {printf("TASK1 测试...\r\n");tos_task_delay(2000);}
}void task2_entry(void *arg)
{while(1) {printf("TASK2 初出茅庐的小李...\r\n");HAL_GPIO_TogglePin(USER_LED_GPIO_Port, USER_LED_Pin);tos_task_delay(1000);}
}

编译测试

在这里插入图片描述

有个BUG

串口5使用的PB5 PB13 不是PB6

默认生成的是PB6…

这篇关于初出茅庐的小李博客之TobudOS移植到EVB_AIoT开发板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476216

相关文章

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

搜狗浏览器打开CSDN博客排版错乱问题解决

之前发生过几次,不知道什么原因。 今天一直用着好好的,打开一个csdn连接,显示404,博文被删除了,于是就用百度快照打开试试,百度快照打开显示的排版很乱也没找到有用信息。 后面再浏览CSDN博客就排版错乱,显示一个大大二维码图片。 尝试删除IE缓存无效,使用谷歌浏览是好的。 基本锁定就是搜狗缓存导致的,于是找如何删除搜狗缓存   清除后恢复正常

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本  1.2 认识Nano版本 2 STM32F446U上移植RT-Thread  2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet  2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码  2.2.3.

828华为云征文|基于华为云Flexus云服务器X实例部搭建Halo博客平台

华为云征文|基于华为云Flexus云服务器X实例部搭建Halo博客平台 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Halo介绍2.1 Halo 简介2.2 Halo 特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、购买华为云Flexus云服务器X实例4.

缓存的常见问题 以及解决博客文章

1.jedispool 连 redis 高并发卡死  (子非鱼yy) https://blog.csdn.net/ztx114/article/details/78291734 2. Redis安装及主从配置 https://blog.csdn.net/ztx114/article/details/78320193 3.Spring中使用RedisTemplate操作Redis(sprin

[置顶] IT牛人博客

团队技术博客 淘宝UED淘宝用户体验团队淘宝核心系统淘宝核心系统团队博客阿里巴巴数据库团队专注数据库管理开发运维淘宝通用产品专注JAVA技术淘宝QA致力于做测试的行业标准淘宝搜索技术关注技术 关注搜索量子恒道专注大数据统计百度搜索研发关注搜索相关技术EMC中国研究院关注于云计算和大数据贰号楼肆层阿里巴巴平台技术部阿里数据平台阿里巴巴数据平台百度技术分享交流百度的互联网技术编码者说腾讯滴技术团队腾

为什么你应该从现在开始就写博客---刘未鹏

(一)为什么你应该(从现在开始就)写博客 用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处。(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极大损伤一样) 让我说得更明确一点:用博客的形式来记录下你有价值的思考,会带来很多好处,却没有任何明显的坏处。Note:碎碎念不算思考、心情琐记不算思考、唠唠叨叨也不算思考、没话找话也不算思考

游戏开发者有必要写博客的6大原因

为什么你要写博客?在本文中我将分析为何写博客在游戏产业中如此有效的 6 大原因。 假设你是资深的游戏开发者、制作、发行商、二年级学生、测试者、设计师、程序员、美术师或者编曲者。你的爱好伴随着许多的技艺。每个人完成一款游戏的过程,方法都不同,这里也充满许多值得我们学习的有趣瞬间。当然你可以继续坚守自己的看法。但我还是看到了许多低调的开发者们在挣扎着。 1. 贡献 我的观点中最重要的一方面便是你