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

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

3天内不再提示

跟踪调试rt smart启动过程的记录贴

冬至子 来源:zms123456 作者:zms123456 2023-08-16 15:31 次阅读

_start阶段
系统时先进入_start执行。首先判断cpu核,如果是0号核的话执行初始化过程,其它核则执行wfe指令进入睡眠。初始化的过程如下:

将异常等级转入el1
设置栈顶指针
清理bss段
初始化mmu的翻译控制寄存器
设置内核和用户空间页表基址寄存器并进行初始化阶段的页表设置,此时将内核空间虚拟地址映射为物理地址+0xffff0000000000,用户空间虚拟地址映射为物理地址+0x40000000。
使能mmu,启用页表翻译地址
使用户空间页表基地址寄存器失效(原来设置该寄存器只为了跳转高地址前的地址翻译),只用内核地址,并设置栈寄存器为sp_el1
跳转到rtthread_startup
rtthread_startup阶段
内存相关初始化过程及内存管理初步学习
在rt_hw_board_init中进行内存相关初始化,这里的目的是设置表示内核空间的相关全局数据结构,及对内存的分布进行设置。

执行完该部分后,内核地址空间相关数据结构如下:

// 表示内核地址空间
struct rt_aspace rt_kernel_space{
.start = 0xffff000000000000; // 内核起始地址
.size = 0x1000000000000; // 内核地址空间大小
.page_table = MMUTable; // 内核所使用的页表,为变量MMUTable地址
.pgtbl_lock;
.tree.tree.root_node = mpr_varea;
.bst_lock.parent.parent.name = "aspace"; // bst_lock的名字
.asid = 0; // 地址空间id
}
// 表示页表空间
struct rt_varea mpr_varea{
.start = rt_mpr_start; // 页元数据基址,值为0xfffffdfff0000000
.size = rt_mpr_size; // 页元数据区域大小,值为0x20000000000
.offset = 0;
.attr = 1536;
.flag = 8704;
.aspace = rt_kernel_space;
.mem_obj = mm_page_mapper; // 内存操作接口
.node;
.frames = 0;
.data = 0;
}
init_mpr_align_start = 0xfffffdfff0880000; // 表示页空间起始页对应的页元数据,由于页元数据起始地址(rt_mpr_start)是从0物理地址开始存,所以需要此数据
init_mpr_align_end = 0xfffffdfff0900000; // 表示页空间末尾页对应的页元数据
early_offset = 0xffff020013880000; // 表示的是起始页与起始页元数据之间距离
mpr_cont = 0xffff000003880000; // 表示的是如果将页的元数据放页区域前元数据起始位置
head_cont = 0xffff000004102000; // 表示将mpr_cont作为页元数据起始地址后页区域首页对应元数据位置
tail_cont = 0xffff000004180000; // 表示将mpr_cont作为页元数据起始地址后页区域尾页对应元数据位置

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

    关注

    31

    文章

    5310

    浏览量

    119983
  • MMU
    MMU
    +关注

    关注

    0

    文章

    91

    浏览量

    18263
  • 控制寄存器
    +关注

    关注

    0

    文章

    34

    浏览量

    11479
  • RTThread
    +关注

    关注

    8

    文章

    132

    浏览量

    40803
收藏 人收藏

    评论

    相关推荐

    通过Uboot TFTP启动rt-smart内核

    介绍Windows下通过 Uboot  TFTP 方式下载和启动rt-smart 内核
    的头像 发表于 06-30 12:34 3629次阅读
    通过Uboot TFTP<b class='flag-5'>启动</b><b class='flag-5'>rt-smart</b>内核

    详解STM32启动过程

    本章教程主要跟大家讲STM32H7的启动过程,这里的启动过程是指从CPU上电复位执行第1条指令开始(汇编文件)到进入C程序main()函数入口之间的部分。
    发表于 11-14 11:24 1827次阅读

    使用pahomqtt启动过程中pipe_fops_open时出现rt_condvar_timedwait ,如何解决?

    在使用pahomqtt 启动过程中pipe_fops_open 时出现rt_condvar_timedwait 死等,而RTT 5.0则可以。请问该如何解决?
    发表于 09-26 07:11

    RT-Smart的资料合集

    1、RT-Smart启动过程在熟悉 RT-Smart 架构的过程中,研究其启动过程的是必不可少的,那么在系统正常运行之前,需要做哪些准备工
    发表于 03-22 15:06

    请问RT -SMART支持GDB调试吗?

    RT-SMART介绍,应用程序开发可以用GDB在线调试。现在发布的版本已经具有还功能了吗?原文摘录:为了更好的支持应用程序调试,在RT-Thread
    发表于 04-20 09:35

    系统启动过程

    系统启动过程系统启动过程主要由一下几步组成(以硬盘启动为例):1. 开机2. BIOS 加电自检 ( Power On Self Test -- POST ),内存地址为 0ffff:00003. 将硬盘第一个
    发表于 10-11 12:17 2250次阅读

    嵌入式uCLinux内核启动过程分析

    分析uCLinux的启动过程,可以加快系统启动速度、正确建立应用环境。本文要研究的就是uCLinux操作系统内核的启动过程
    发表于 08-15 16:51 782次阅读

    IC启动过程及Vcc电压波形的认知

    IC启动过程及Vcc电压波形的认知IC启动过程及Vcc电压波形的认知IC启动过程及Vcc电压波形的认知IC启动过程及Vcc电压波形的认知
    发表于 12-22 14:46 10次下载

    Windows XP 启动过程详解

    我们每天都在和 Windows 打交道,很多人可能每天都要面对多次 Windows 的启动过程,可是您知道在 Windows 的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的
    发表于 11-10 18:24 11次下载

    嵌入式系统内核引导启动过程浅析

    嵌入式系统内核引导启动过程浅析
    发表于 10-30 10:26 6次下载
    嵌入式系统内核引导<b class='flag-5'>启动过程</b>浅析

    STM32上电后启动过程

    STM32上电后启动过程
    发表于 11-15 18:21 16次下载
    STM32上电后<b class='flag-5'>启动过程</b>

    stm32启动过程

    一次性搞定stm32启动模式与启动过程一、stm32启动模式二、从flash启动过程2.1 数据在堆栈中存储方式2.2 stm32的正常启动过程
    发表于 12-16 16:57 8次下载
    stm32<b class='flag-5'>启动过程</b>

    RL78启动过程详解

    RL78启动过程详解
    的头像 发表于 09-28 16:39 1377次阅读
    RL78<b class='flag-5'>启动过程</b>详解

    logd的启动过程和内容

    logd作为native service,系统启动过程通过读取rc文件来启动,相关的属性定义在如下logd.rc文件中。 2.2.1 logd启动过程 logd启动后会存在三个用来服务
    的头像 发表于 11-23 16:54 800次阅读
    logd的<b class='flag-5'>启动过程</b>和内容

    stm32启动过程详解

    STM32启动过程详解 近年来,STM32微控制器在嵌入式系统中的应用越来越广泛。STM32微控制器具有高性能、低功耗、易扩展和丰富的外设接口等优势。而要让STM32微控制器正常工作,首先要了解它
    的头像 发表于 12-08 15:47 1515次阅读