精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

跟蹤調(diào)試rt smart啟動過程的記錄貼

冬至子 ? 來源:zms123456 ? 作者:zms123456 ? 2023-08-16 15:31 ? 次閱讀

_start階段
系統(tǒng)時先進(jìn)入_start執(zhí)行。首先判斷cpu核,如果是0號核的話執(zhí)行初始化過程,其它核則執(zhí)行wfe指令進(jìn)入睡眠。初始化的過程如下:

將異常等級轉(zhuǎn)入el1
設(shè)置棧頂指針
清理bss段
初始化mmu的翻譯控制寄存器
設(shè)置內(nèi)核和用戶空間頁表基址寄存器并進(jìn)行初始化階段的頁表設(shè)置,此時將內(nèi)核空間虛擬地址映射為物理地址+0xffff0000000000,用戶空間虛擬地址映射為物理地址+0x40000000。
使能mmu,啟用頁表翻譯地址
使用戶空間頁表基地址寄存器失效(原來設(shè)置該寄存器只為了跳轉(zhuǎn)高地址前的地址翻譯),只用內(nèi)核地址,并設(shè)置棧寄存器為sp_el1
跳轉(zhuǎn)到rtthread_startup
rtthread_startup階段
內(nèi)存相關(guān)初始化過程及內(nèi)存管理初步學(xué)習(xí)
在rt_hw_board_init中進(jìn)行內(nèi)存相關(guān)初始化,這里的目的是設(shè)置表示內(nèi)核空間的相關(guān)全局?jǐn)?shù)據(jù)結(jié)構(gòu),及對內(nèi)存的分布進(jìn)行設(shè)置。

執(zhí)行完該部分后,內(nèi)核地址空間相關(guān)數(shù)據(jù)結(jié)構(gòu)如下:

// 表示內(nèi)核地址空間
struct rt_aspace rt_kernel_space{
.start = 0xffff000000000000; // 內(nèi)核起始地址
.size = 0x1000000000000; // 內(nèi)核地址空間大小
.page_table = MMUTable; // 內(nèi)核所使用的頁表,為變量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; // 頁元數(shù)據(jù)基址,值為0xfffffdfff0000000
.size = rt_mpr_size; // 頁元數(shù)據(jù)區(qū)域大小,值為0x20000000000
.offset = 0;
.attr = 1536;
.flag = 8704;
.aspace = rt_kernel_space;
.mem_obj = mm_page_mapper; // 內(nèi)存操作接口
.node;
.frames = 0;
.data = 0;
}
init_mpr_align_start = 0xfffffdfff0880000; // 表示頁空間起始頁對應(yīng)的頁元數(shù)據(jù),由于頁元數(shù)據(jù)起始地址(rt_mpr_start)是從0物理地址開始存,所以需要此數(shù)據(jù)
init_mpr_align_end = 0xfffffdfff0900000; // 表示頁空間末尾頁對應(yīng)的頁元數(shù)據(jù)
early_offset = 0xffff020013880000; // 表示的是起始頁與起始頁元數(shù)據(jù)之間距離
mpr_cont = 0xffff000003880000; // 表示的是如果將頁的元數(shù)據(jù)放頁區(qū)域前元數(shù)據(jù)起始位置
head_cont = 0xffff000004102000; // 表示將mpr_cont作為頁元數(shù)據(jù)起始地址后頁區(qū)域首頁對應(yīng)元數(shù)據(jù)位置
tail_cont = 0xffff000004180000; // 表示將mpr_cont作為頁元數(shù)據(jù)起始地址后頁區(qū)域尾頁對應(yīng)元數(shù)據(jù)位置

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5325

    瀏覽量

    120037
  • MMU
    MMU
    +關(guān)注

    關(guān)注

    0

    文章

    91

    瀏覽量

    18268
  • 控制寄存器
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    11481
  • RTThread
    +關(guān)注

    關(guān)注

    8

    文章

    132

    瀏覽量

    40811
收藏 人收藏

    評論

    相關(guān)推薦

    通過Uboot?TFTP啟動rt-smart內(nèi)核

    介紹Windows下通過 Uboot??TFTP 方式下載和啟動rt-smart 內(nèi)核
    的頭像 發(fā)表于 06-30 12:34 ?3643次閱讀
    通過Uboot?TFTP<b class='flag-5'>啟動</b><b class='flag-5'>rt-smart</b>內(nèi)核

    詳解STM32啟動過程

    本章教程主要跟大家講STM32H7的啟動過程,這里的啟動過程是指從CPU上電復(fù)位執(zhí)行第1條指令開始(匯編文件)到進(jìn)入C程序main()函數(shù)入口之間的部分。
    發(fā)表于 11-14 11:24 ?1830次閱讀

    使用pahomqtt啟動過程中pipe_fops_open時出現(xiàn)rt_condvar_timedwait ,如何解決?

    在使用pahomqtt 啟動過程中pipe_fops_open 時出現(xiàn)rt_condvar_timedwait 死等,而RTT 5.0則可以。請問該如何解決?
    發(fā)表于 09-26 07:11

    RT-Smart的資料合集

    1、RT-Smart啟動過程在熟悉 RT-Smart 架構(gòu)的過程中,研究其啟動過程的是必不可少的,那么在系統(tǒng)正常運(yùn)行之前,需要做哪些準(zhǔn)備工
    發(fā)表于 03-22 15:06

    請問RT -SMART支持GDB調(diào)試嗎?

    RT-SMART介紹,應(yīng)用程序開發(fā)可以用GDB在線調(diào)試。現(xiàn)在發(fā)布的版本已經(jīng)具有還功能了嗎?原文摘錄:為了更好的支持應(yīng)用程序調(diào)試,在RT-Thread
    發(fā)表于 04-20 09:35

    系統(tǒng)啟動過程

    系統(tǒng)啟動過程系統(tǒng)啟動過程主要由一下幾步組成(以硬盤啟動為例):1. 開機(jī)2. BIOS 加電自檢 ( Power On Self Test -- POST ),內(nèi)存地址為 0ffff:00003. 將硬盤第一個
    發(fā)表于 10-11 12:17 ?2251次閱讀

    嵌入式uCLinux內(nèi)核啟動過程分析

    分析uCLinux的啟動過程,可以加快系統(tǒng)啟動速度、正確建立應(yīng)用環(huán)境。本文要研究的就是uCLinux操作系統(tǒng)內(nèi)核的啟動過程
    發(fā)表于 08-15 16:51 ?782次閱讀

    IC啟動過程及Vcc電壓波形的認(rèn)知

    IC啟動過程及Vcc電壓波形的認(rèn)知IC啟動過程及Vcc電壓波形的認(rèn)知IC啟動過程及Vcc電壓波形的認(rèn)知IC啟動過程及Vcc電壓波形的認(rèn)知
    發(fā)表于 12-22 14:46 ?10次下載

    Windows XP 啟動過程詳解

    我們每天都在和 Windows 打交道,很多人可能每天都要面對多次 Windows 的啟動過程,可是您知道在 Windows 的啟動過程背后,隱藏著什么秘密嗎?在這一系列過程中都用到了哪些重要的系統(tǒng)文件?系統(tǒng)的
    發(fā)表于 11-10 18:24 ?11次下載

    嵌入式系統(tǒng)內(nèi)核引導(dǎo)啟動過程淺析

    嵌入式系統(tǒng)內(nèi)核引導(dǎo)啟動過程淺析
    發(fā)表于 10-30 10:26 ?6次下載
    嵌入式系統(tǒng)內(nèi)核引導(dǎo)<b class='flag-5'>啟動過程</b>淺析

    STM32上電后啟動過程

    STM32上電后啟動過程
    發(fā)表于 11-15 18:21 ?16次下載
    STM32上電后<b class='flag-5'>啟動過程</b>

    stm32啟動過程

    一次性搞定stm32啟動模式與啟動過程一、stm32啟動模式二、從flash啟動過程2.1 數(shù)據(jù)在堆棧中存儲方式2.2 stm32的正常啟動過程
    發(fā)表于 12-16 16:57 ?8次下載
    stm32<b class='flag-5'>啟動過程</b>

    RL78啟動過程詳解

    RL78啟動過程詳解
    的頭像 發(fā)表于 09-28 16:39 ?1394次閱讀
    RL78<b class='flag-5'>啟動過程</b>詳解

    logd的啟動過程和內(nèi)容

    logd作為native service,系統(tǒng)啟動過程通過讀取rc文件來啟動,相關(guān)的屬性定義在如下logd.rc文件中。 2.2.1 logd啟動過程 logd啟動后會存在三個用來服務(wù)
    的頭像 發(fā)表于 11-23 16:54 ?804次閱讀
    logd的<b class='flag-5'>啟動過程</b>和內(nèi)容

    stm32啟動過程詳解

    STM32啟動過程詳解 近年來,STM32微控制器在嵌入式系統(tǒng)中的應(yīng)用越來越廣泛。STM32微控制器具有高性能、低功耗、易擴(kuò)展和豐富的外設(shè)接口等優(yōu)勢。而要讓STM32微控制器正常工作,首先要了解它
    的頭像 發(fā)表于 12-08 15:47 ?1533次閱讀