0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Thread qemu mps2-an385 bsp移植制作 :系统运行篇

冬至子 来源:张世争 作者:张世争 2023-11-14 12:27 次阅读

前言

前面已经让 RT-Thread 进入了 entry 入口函数,并且 调整 链接脚本,自动初始化与 MSH shell 的符号已经预留, 进入了 RT-Thread 的初始化流程

接下来:从 内存管理、系统tick 定时器、适配串口 uart 驱动三个模块入手,让RT-Thread 真正运行起来

系统tick定时器

可以称之为 操作系统的心跳,一般是个周期性的定时器,比如 1ms 为周期,周期性的执行。

通过验证,mps2-an385 支持 systick 定时器,简单配置后,就可以实现 系统 tick 定时器功能

修改完善 drv_common.c

#include
#include
#include "CMSDK_CM3.h"
#include "system_CMSDK_CM3.h"
static uint32_t _systick_ms = 1;
/**

This is the timer interrupt service routine.

/
void SysTick_Handler(void)
{
/
enter interrupt /
rt_interrupt_enter();
rt_tick_increase();
/
leave interrupt /
rt_interrupt_leave();
}
/
SysTick configuration */
void rt_hw_systick_init(void)
{
SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
NVIC_SetPriority(SysTick_IRQn, 0xFF);
_systick_ms = 1000u / RT_TICK_PER_SECOND;
if(_systick_ms == 0)
_systick_ms = 1;
}

rt_hw_systick_init 当前被 board.c 中的 rt_hw_board_init 调用,而 rt_hw_board_init 又被 RT-Thread rtthread_startup 调用, rtthread_startup 被 RT-Thread 入口函数 entry 调用,这个 entry 又被 启动文件 Reset_Handler 调用,Reset_Handler 是 MCU 上电执行的函数。

初始化 rt_hw_systick_init 后,VS Code gdb 调试,发现可以周期性进入 SysTick_Handler,也就是 systick 定时器的中断处理函数,在这个函数中,执行 rt_tick_increase,基于时间片的系统调度、系统定时与延时等,都依赖 系统 tick 定时器,也就是移植 RT-Thread,必须有周期性 tick 定时器

1.jpg

系统内存管理

1.jpg

1.jpg

2.jpg

1.jpg

1.jpg

2.jpg

3.jpg

1.jpg

2.jpg

3.jpg

1.jpg

1.jpg

1.jpg

./qemu.sh 运行信息

1.jpg

以上,说明RT-Thread qemu mps2-an385 bsp 制作初步完成,当前初步验证,无法支持文件系统,并且其他的外设欠缺资料,因为移植宣告完成。 可以通过 VS Code gdb 调试,熟悉 RT-Thread 系统调用、内存分配、测试验证各个 RT-Thread 功能模块

小结

本篇通过 bsp 适配 内存管理、串口驱动、系统 tick 定时器,让 RT-Thread 跑起来,qemu mps2-an385 bsp 在 RT-Thread 上移植适配完成。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114631
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114692
  • UART接口
    +关注

    关注

    0

    文章

    124

    浏览量

    15286
  • RT-Thread
    +关注

    关注

    31

    文章

    1284

    浏览量

    40056
  • gdb调试器
    +关注

    关注

    0

    文章

    10

    浏览量

    1099
收藏 人收藏

    评论

    相关推荐

    如何在windows和linux平台使用RT-Thread QEMU BSP,并运行RT-ThreadGUI示例

    开发板的情况下体验RT-ThreadRT-Thread使用QEMU模拟了ARM vexpress A9开发板,并提供了相关的板级支持包(BSP)。本文主要介绍在windows平台和l
    的头像 发表于 02-08 08:50 1.4w次阅读
    如何在windows和linux平台使用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>QEMU</b> <b class='flag-5'>BSP</b>,并<b class='flag-5'>运行</b><b class='flag-5'>RT</b>-ThreadGUI示例

    RT-Thread的STM32BSP制作教程

    一、概念BSP是板级支持包(Board Support Package)的意思,概念详见BSP百科。二、参考资料1、官方版本文字制作教程:RT-Thread的STM32
    发表于 08-03 08:04

    掌握RT-Thread系统移植的基本方法

    背景目标为进一步研究RT-Thread,掌握系统移植的基本方法RT-Thread 最新代码BSP里,已经有STM32H743的
    发表于 01-07 08:25

    如何在Window及Ubuntu平台使用QEMU运行 RT-Thread qemu-vexpress-a9 BSP工程

    BSP 文件夹下创建一份空白的 sd.bin 文件,这是虚拟的 sd 卡,大小为 64M。Env 命令行界面显示 RT-Thread 系统启动过程中打印的初始化信息及版本号信息等,qemu
    发表于 10-26 15:19

    在Windows平台使用Eclipse调试RT-Thread qemu-vexpress-a9 BSP工程

    \\qemu-vexpress-a9 切换到 RT-Thread 源码文件夹下的 qemu-vexpress-a9 BSP 根目录,然后输入 scons 命令编译工程,如果编译正确无误
    发表于 10-26 15:31

    使用QEMU运行RT-ThreadBSP下的以太网卡驱动实现原理?

    小白入门级问题求助:QEMU运行RT-Thread时对应的qemu.bat脚本文件中没有-nic创建虚拟网卡参数选项,是在bsp中实现了虚拟
    发表于 04-27 11:39

    RT-Thread BSP qemu-virt64-aarch64文件系统

      前言   前面大体上搭建了 RT-Thread BSP qemu-virt64-aarch64 的交叉编译环境,运行后发现,文件系统没有
    发表于 05-16 10:29

    STM32系列RT-Thread系统BSP制作教程免费下载

    为了让广大开发者更好、更方便地使用 BSP 进行开发,RT-Thread 开发团队重新整理了现有的 STM32 系列的 BSP,推出了新的 BSP 框架。新的
    发表于 02-25 08:00 47次下载
    STM32系列<b class='flag-5'>RT-Thread</b><b class='flag-5'>系统</b><b class='flag-5'>BSP</b><b class='flag-5'>制作</b>教程免费下载

    RT-Thread系统移植到STM32f103

    RT-Thread系统移植到STM32f103
    发表于 12-09 12:51 26次下载
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>系统</b><b class='flag-5'>移植</b>到STM32f103

    RT-Thread文档_RT-Thread SMP 介绍与移植

    RT-Thread文档_RT-Thread SMP 介绍与移植
    发表于 02-22 18:31 9次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> SMP 介绍与<b class='flag-5'>移植</b>

    手把手教你在RT-THREAD bsp运行pikascript脚本点亮小灯

    简介 这篇文章介绍如何在RT-THREAD bsp运行pikascript脚本。 pikascript相当于一个小型的micropython。 原文: https://blog.csdn.net
    的头像 发表于 05-25 07:45 883次阅读
    手把手教你在<b class='flag-5'>RT-THREAD</b> <b class='flag-5'>bsp</b>上<b class='flag-5'>运行</b>pikascript脚本点亮小灯

    RT-Thread qemu mps2-an385 bsp移植制作 :环境搭建

    最近打算系统地研究一下 RT-Thread,包括 RT-Thread BSP移植,由于一直在使用 Q
    的头像 发表于 08-02 14:45 611次阅读
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>qemu</b> <b class='flag-5'>mps2-an385</b> <b class='flag-5'>bsp</b><b class='flag-5'>移植</b><b class='flag-5'>制作</b> :环境搭建<b class='flag-5'>篇</b>

    RT-Thread qemu mps2-an385 bsp移植制作BSP制作

    安装 Keil.V2M-MPS2_CMx_BSP.1.8.0.pack 后, 在 V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM3\Source\GCC 路径下,有 mps2-an385 的启动文件
    的头像 发表于 08-02 14:49 1027次阅读
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>qemu</b> <b class='flag-5'>mps2-an385</b> <b class='flag-5'>bsp</b><b class='flag-5'>移植</b><b class='flag-5'>制作</b> :<b class='flag-5'>BSP</b><b class='flag-5'>制作</b><b class='flag-5'>篇</b>

    瑞萨Cortex-M内核RA MCU的RT-Thread BSP制作教程发布

    瑞萨Cortex-M内核RA MCU的RT-Thread BSP制作教程发布
    的头像 发表于 09-18 10:58 705次阅读
    瑞萨Cortex-M内核RA MCU的<b class='flag-5'>RT-Thread</b> <b class='flag-5'>BSP</b><b class='flag-5'>制作</b>教程发布

    RT-Thread BSP qemu-virt64-aarch64文件系统

    前面大体上搭建了 RT-Thread BSP qemu-virt64-aarch64 的交叉编译环境,运行后发现,文件系统没有挂载上,感觉是
    的头像 发表于 10-08 16:34 939次阅读
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>BSP</b> <b class='flag-5'>qemu</b>-virt64-aarch64文件<b class='flag-5'>系统</b>