rtthread学习笔记系列(8) --RTT系统初始化

news2025/1/15 23:39:08

文章目录

  • 8.RTT系统初始化
    • 8.1 `rtthread_startup`
    • 8.2 rt_hw_board_init
    • 8.3 INIT_EXPORT
    • 8.4 rt_system_timer_init

https://github.com/wdfk-prog/RT-Thread-Study

8.RTT系统初始化

8.1 rtthread_startup

  1. 中断禁用
  2. 板级初始化

8.2 rt_hw_board_init

  1. I/D cache初始化
  2. 时钟初始化
  3. 外设时钟初始化
  4. 堆初始化 rt_system_heap_init
  5. 组件初始化 rt_components_board_init,初始化板级驱动

8.3 INIT_EXPORT


/*

 * Components Initialization will initialize some driver and components as following

 * order:

 * rti_start         --> 0

 * BOARD_EXPORT      --> 1

 * rti_board_end     --> 1.end

 *

 * DEVICE_EXPORT     --> 2

 * COMPONENT_EXPORT  --> 3

 * FS_EXPORT         --> 4

 * ENV_EXPORT        --> 5

 * APP_EXPORT        --> 6

 *

 * rti_end           --> 6.end

 *

 * These automatically initialization, the driver or component initial function must

 * be defined with:

 * INIT_BOARD_EXPORT(fn);

 * INIT_DEVICE_EXPORT(fn);

 * ...

 * INIT_APP_EXPORT(fn);

 * etc.

 */

  1. 根据编译后 Image Symbol Table中顺序执行

    __rt_init_rti_start                      0x900621a4   Data           4  components.o(.rti_fn.0)

    __rt_init_rti_board_start                0x900621a8   Data           4  components.o(.rti_fn.0.end)

    __rt_init_vtor_config                    0x900621ac   Data           4  board.o(.rti_fn.1)

    __rt_init_mpu_init                       0x900621b0   Data           4  drv_mpu.o(.rti_fn.1)

    __rt_init_rt_hw_spi_init                 0x900621b4   Data           4  drv_spi.o(.rti_fn.1)

    __rt_init_SDRAM_Init                     0x900621b8   Data           4  drv_sdram.o(.rti_fn.1)

    __rt_init_rt_wdt_init                    0x900621bc   Data           4  drv_wdt.o(.rti_fn.1)

    __rt_init_rt_usbd_class_list_init        0x900621c0   Data           4  usbdevice.o(.rti_fn.1)

    __rt_init_ulog_init                      0x900621c4   Data           4  ulog.o(.rti_fn.1)

    __rt_init_rti_board_end                  0x900621c8   Data           4  components.o(.rti_fn.1.end)

    __rt_init_rt_mmcsd_core_init             0x900621cc   Data           4  mmcsd_core.o(.rti_fn.2)

    __rt_init_dfs_init                       0x900621d0   Data           4  dfs.o(.rti_fn.2)

    __rt_init_rt_usbd_msc_class_register     0x900621d4   Data           4  mstorage.o(.rti_fn.2)

    __rt_init_ulog_console_backend_init      0x900621d8   Data           4  console_be.o(.rti_fn.2)

    __rt_init_ulog_async_init                0x900621dc   Data           4  ulog.o(.rti_fn.2)

    __rt_init_ulog_console_backend_filter_init 0x900621e0   Data           4  ulog_file_be.o(.rti_fn.3)

    __rt_init_adc_init                       0x900621e4   Data           4  user_adc.o(.rti_fn.3)

    __rt_init_rt_cm_backtrace_init           0x900621e8   Data           4  cmb_port.o(.rti_fn.3)

    __rt_init_stm_usbd_register              0x900621ec   Data           4  drv_usbd.o(.rti_fn.3)

    __rt_init_rt_hw_sdio_init                0x900621f0   Data           4  drv_sdmmc.o(.rti_fn.3)

    __rt_init_rt_hw_rtc_init                 0x900621f4   Data           4  drv_rtc.o(.rti_fn.3)

    __rt_init_set_finsh_irq                  0x900621f8   Data           4  board.o(.rti_fn.4)

    __rt_init_rtc_update_init                0x900621fc   Data           4  board.o(.rti_fn.4)

    __rt_init_elm_init                       0x90062200   Data           4  dfs_elm.o(.rti_fn.4)

    __rt_init_dfs_romfs_init                 0x90062204   Data           4  dfs_romfs.o(.rti_fn.4)

    __rt_init_dfs_lfs_init                   0x90062208   Data           4  dfs_lfs.o(.rti_fn.4)

    __rt_init_syswatch_init                  0x9006220c   Data           4  syswatch.o(.rti_fn.4)

    __rt_init_utest_init                     0x90062210   Data           4  utest.o(.rti_fn.4)

    __rt_init_rt_flash_init                  0x90062214   Data           4  spi_flash_init.o(.rti_fn.5)

    __rt_init_mfbd_init                      0x90062218   Data           4  bsp_key.o(.rti_fn.6)

    __rt_init_User_Led_Init                  0x9006221c   Data           4  user_led.o(.rti_fn.6)

    __rt_init_pvd_init                       0x90062220   Data           4  board.o(.rti_fn.6)

    __rt_init_uart1_init                     0x90062224   Data           4  user_uart1.o(.rti_fn.6)

    __rt_init_cpu_usage_init                 0x90062228   Data           4  cpu_usage.o(.rti_fn.6)

    __rt_init_finsh_system_init              0x9006222c   Data           4  shell.o(.rti_fn.6)

    __rt_init_rti_end                        0x90062230   Data           4  components.o(.rti_fn.6.end)

8.4 rt_system_timer_init

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2277234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用 Python 从零开始创建神经网络(十九):真实数据集

真实数据集 引言数据准备数据加载数据预处理数据洗牌批次(Batches)训练(Training)到目前为止的全部代码: 引言 在实践中,深度学习通常涉及庞大的数据集(通常以TB甚至更多为单位)&am…

No.1|Godot|俄罗斯方块复刻|棋盘和初始方块的设置

删掉基础图标新建assets、scenes、scripts文件夹 俄罗斯方块的每种方块都是由四个小方块组成的,很适合放在网格地图中 比如网格地图是宽10列,高20行 要实现网格的对齐和下落 Node2D节点 新建一个Node2D 添加2个TileMapLayer 一个命名为Board&…

蓝桥云客第 5 场 算法季度赛

题目: 2.开赛主题曲【算法赛】 - 蓝桥云课 问题描述 蓝桥杯组委会创作了一首气势磅礴的开赛主题曲,其歌词可用一个仅包含小写字母的字符串 S 表示。S 中的每个字符对应一个音高,音高由字母表顺序决定:a1,b2,...,z26。字母越靠后…

刀客doc:快手的商业化架构为什么又调了?

一、 1月10日,快手商业化及电商事业部进行新一轮的架构调整。作为2025年快手的第一次大调整,变动最大的是负责广告业务的商业化事业部。快手商业化将原来的8个业务中心,现在统合成了5个,行业归拢看上去更加明晰了。 根据自媒体《…

6.2 MySQL时间和日期函数

以前我们就用过now()函数来获得系统时间,用datediff()函数来计算日期相差的天数。我们在计算工龄的时候,让两个日期相减。那么其中的这个now函数返回的就是当前的系统日期和时间。 1. 获取系统时间函数 now()函数,返回的这个日期和时间的格…

mock服务-通过json定义接口自动实现mock服务

go-mock介绍 不管在前端还是后端开发过程中,当我们需要联调其他服务的接口,而这个服务还没法提供调用时,那我们就要用到mock服务,自己按接口文档定义一个临时接口返回指定数据,以供本地开发联调测试。 怎么快速启动一…

sparkSQL练习

1.前期准备 (1)建议先把这两篇文章都看一下吧,然后把这个项目也搞下来 (2)看看这个任务 (3)score.txt student_id,course_code,score 108,3-105,99 105,3-105,88 107,3-105,77 105,3-245,87 1…

CSS | 实现三列布局(两边边定宽 中间自适应,自适应成比)

目录 示例1 (中间自适应 示例2(中间自适应 示例3(中间自适应 示例4 (自适应成比 示例5(左中定宽,右边自适应 示例6(中间自适应 示例7(中间自适应 示例8(中间定宽…

力扣 子集

回溯基础,一题多解,不同的回朔过程。 题目 求子集中,数组的每种元素有选与不选两种状态。因此在使用dfs与回溯时把每一个元素分别进行选与不选的情况考虑即可。可以先用dfs跳过当前元素即不选然后一直深层挖下去,直到挖到最深了即…

网络层协议-----IP协议

目录 1.认识IP地址 2.IP地址的分类 3.子网划分 4.公网IP和私网IP 5.IP协议 6.如何解决IP地址不够用 1.认识IP地址 IP 地址(Internet Protocol Address)是指互联网协议地址。 它是分配给连接到互联网的设备(如计算机、服务器、智能手机…

RocketMQ 知识速览

文章目录 一、消息队列对比二、RocketMQ 基础1. 消息模型2. 技术架构3. 消息类型4. 消费者类型5. 消费者分组和生产者分组 三、RocketMQ 高级1. 如何解决顺序消费和重复消费2. 如何实现分布式事务3. 如何解决消息堆积问题4. 如何保证高性能读写5. 刷盘机制 (topic 模…

C++(类和对象)

C中的类 C中兼容对C语言中struct的所有用法.同时C对struct进行了语法的升级.将struct升级成了类. // c中对于struct的改进: struct Stack {int* a;int top;int capacity; } int main() { Stack s;// 这里可以直接使用Stack进行使用,而不再需要struct关键字了return 0; }注意:…

centos 8 中安装Docker

注:本次样式安装使用的是centos8 操作系统。 1、镜像下载 具体的镜像下载地址各位可以去官网下载,选择适合你们的下载即可! 1、CentOS官方下载地址:https://vault.centos.org/ 2、阿里云开源镜像站下载:centos安装包…

Sui Move:基本概览一

Module (模块) Move 代码被组织成模块, 可以把一个模块看成是区块链上的一个智能合约 可以通过调用这些模块中的函数来与模块进行交互,可以通过事务或其他 Move 代码来实现, 事务将被发送到并由Sui区块链进行处理,一旦执行完成,结果的更改将…

1/13+2

运算符重载 myString.h #ifndef MYSTRING_H #define MYSTRING_H #include <cstring> #include <iostream> using namespace std; class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度int capacity; …

GD32F470Z外部晶振不起振

亲测&#xff0c;主要的原因是因为系统配置里面选择的晶振&#xff0c;选择内部还是外部的无源晶振。 1.无源晶振 打开startup_gd32f450_470.s这个起始文件。 ​​​​​​​ ​​​​​​​ 找到SystemInit。 跳进去这个函数。 在这个函数里面最底下找到sys…

用css和html制作太极图

目录 css相关参数介绍 边距 边框 伪元素选择器 太极图案例实现、 代码 效果 css相关参数介绍 边距 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}div{width: …

【2025 Rust学习 --- 17 文本和格式化 】

字符串与文本 Rust 的主要文本类型 String、str 和 char 内容概括&#xff1a; Unicode 背景知识&#xff1f;单个 Unicode 码点的 char&#xff1f;String 类型和 str 类型都是表示拥有和借用的 Unicode 字符序列。Rust 的字符串格式化工具&#xff0c;比如 println! 宏和 …

C#中颜色的秘密

颜色的秘密: 颜色Color是一个调色板, 所有颜色都是由透明度Alpha,红Red,绿Green,蓝Blue按不同比例调色混合而成,如果不考虑透明度Alpha,颜色共有256*256*25616777216种 ColorARGB A,R,G,B都为byte型[8位],因此可以用整体的32个整数[Int32]来表示一种颜色 Color 所属命名空…

Pycharm 使用教程

一、基本配置 1. 切换Python解释器 pycharm切换解释器版本 2. pycharm虚拟环境配置 虚拟环境的目的&#xff1a;创建适用于该项目的环境&#xff0c;与系统环境隔离&#xff0c;防止污染系统环境&#xff08;包括需要的库&#xff09;虚拟环境配置存放在项目根目录下的 ven…