欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種CPU隱式初始化方法與流程

文檔序號(hào):40572603發(fā)布日期:2025-01-03 11:34閱讀:12來(lái)源:國(guó)知局
本發(fā)明屬于計(jì)算機(jī)控制,涉及一種cpu隱式初始化方法。
背景技術(shù)
::1、arm?cpu軟件初始化首先,需要對(duì)系統(tǒng)時(shí)鐘進(jìn)行配置,arm?cpu中時(shí)鐘系統(tǒng)是整個(gè)系統(tǒng)的核心,為其他外設(shè)和功能提供時(shí)鐘信號(hào)。接下來(lái),根據(jù)需要配置各個(gè)外設(shè)的時(shí)鐘,外設(shè)的正常工作依賴于時(shí)鐘信號(hào)。gpio(通用輸入輸出)是arm?cpu中最常用的外設(shè)之一,用于連接和控制外部設(shè)備。因此,需要正確配置gpio的引腳模式、輸出類型等參數(shù)。中斷是stm32處理外部事件的重要機(jī)制。通過(guò)配置中斷優(yōu)先級(jí)和中斷服務(wù)例程,可以確保系統(tǒng)能夠快速響應(yīng)外部事件。除了gpio和中斷外,還可能需要對(duì)其他外設(shè)進(jìn)行配置,以滿足特定的應(yīng)用需求。在完成所有必要的配置后,開(kāi)始運(yùn)行用戶的應(yīng)用程序邏輯。技術(shù)實(shí)現(xiàn)思路1、(一)要解決的技術(shù)問(wèn)題2、在gd32啟動(dòng)過(guò)程中,需要在主函數(shù)中對(duì)板載的外設(shè)進(jìn)行初始化操作,通常按照不同外設(shè)的初始化函數(shù)進(jìn)行順序調(diào)用,這些外設(shè)初始化函數(shù)調(diào)用在app文件中,而初始化函數(shù)屬于底層函數(shù),這樣app程序和底層程序嚴(yán)重耦合在一起,如果修改底層外設(shè)接口函數(shù)后者刪除某一個(gè)外設(shè)模塊則需要對(duì)應(yīng)修改應(yīng)用程序。3、(二)技術(shù)方案4、為了解決上述技術(shù)問(wèn)題,本發(fā)明提供一種cpu隱式初始化方法,包括以下步驟:5、s1:使用typedef關(guān)鍵字定義函數(shù)指針init_func定義初始化函數(shù),函數(shù)指針的形參和返回值均為空類型void。6、定義的初始化函數(shù)包括:網(wǎng)絡(luò)初始化函數(shù)ini_wlan_fun,arinc?1553b總線初始化函數(shù),命令行shell初始化函數(shù)ini_shell_func。7、s2:使用armgcc編譯器指令__attribute__((section("name")))把一個(gè)函數(shù)的地址輸出到一個(gè)獨(dú)立的section中,同時(shí)按照設(shè)定順序進(jìn)行排列。8、將編譯器中的x以宏定義的方式替換為段名優(yōu)先級(jí)方式,如x替換為“ini_fn”rank方式,其中rank為等級(jí)序號(hào)1、2、3以此類推,如x參數(shù)由”ini_fn””1”、”ini_fn””2”、”ini_fn””3”表示等級(jí),數(shù)值越小,編譯器會(huì)把對(duì)應(yīng)的函數(shù)放在段表的靠前的位置。9、s3:armgcc編譯器指令__attribute__((used))指令將初始化函數(shù)指針映射到對(duì)應(yīng)的段中。10、設(shè)置網(wǎng)絡(luò)初始化函數(shù)ini_wlan_fun為1級(jí)優(yōu)先級(jí),映射到段.ini_fn.1"中,設(shè)置arinc?1553b總線初始化函數(shù)ini_1553b_func為2級(jí)優(yōu)先級(jí),映射到段.ini_fn.2"中,設(shè)置命令行shell初始化函數(shù)ini_shell_func為3級(jí)優(yōu)先級(jí),映射到段.ini_fn.3"中。11、s4:編譯完成后在.map中查看,在映射符號(hào)表image?symbol?table區(qū)域查看到映射信息。12、映射信息包括:13、(1)符號(hào)名網(wǎng)絡(luò)初始化函數(shù)ini_wlan_fun,符號(hào)地址value為0x200002c8,符號(hào)類型為data,存儲(chǔ)大小size為4,網(wǎng)絡(luò)初始化函數(shù)映射在段.ini_fn.1。14、(2)符號(hào)名arinc?1553b總線初始化函數(shù)ini_1553b_func,符號(hào)地址value為0x200002cc,符號(hào)類型為data,存儲(chǔ)大小size為4,arinc?1553b總線初始化函數(shù)映射在段.ini_fn.2。15、(3)符號(hào)名命令行shell初始化函數(shù)ini_shell_func,符號(hào)地址value為0x200002d0,符號(hào)類型為data,存儲(chǔ)大小size為4,以及命令行shell初始化函數(shù)映射在段.ini_fn.3。16、s5:使用步驟s1定義的init_func函數(shù)指針定義,定義函數(shù)ini_start_func,函數(shù)中不做任何操作,用來(lái)尋找段開(kāi)始位置;以及定義函數(shù)ini_end_func,用來(lái)判斷段結(jié)束位置,此函數(shù)中不做任何操作。17、s6:使用armgcc編譯器__attribute__((section("name")))指令和__attribute__((used))指令將函數(shù)ini_start_func的地址映射到段"ini_fn.0"中,將ini_end_func的地址映射到段"ini_fn.0"中,將ini_end_func的地址映射到段"ini_fn.z"中。18、s7:定義步驟s1中函數(shù)指針變量funcptrnum,初始值賦值為函數(shù)ini_start_func的地址,進(jìn)行地址自增操作,遍歷取出section區(qū)域的指針數(shù)據(jù)復(fù)制給funcptrnum,通過(guò)函數(shù)尋址方式運(yùn)行此函數(shù)。19、(三)有益效果20、上述技術(shù)方案所提供的cpu隱式初始化方法,通過(guò)armgcc編譯器指令將初始化函數(shù)地址輸出到獨(dú)立的段中,并通過(guò)空函數(shù)地址標(biāo)記出開(kāi)始地址和結(jié)束地址,在主函數(shù)中遍歷運(yùn)行段開(kāi)始地址和結(jié)束地址間的函數(shù),完成初始化函數(shù)的運(yùn)行工作。技術(shù)特征:1.一種cpu隱式初始化方法,其特征在于,包括以下步驟:2.如權(quán)利要求1所述的cpu隱式初始化方法,其特征在于,步驟s1中,函數(shù)指針的形參和返回值均為空類型void。3.如權(quán)利要求2所述的cpu隱式初始化方法,其特征在于,步驟s1中,定義的初始化函數(shù)包括:網(wǎng)絡(luò)初始化函數(shù)ini_wlan_fun,arinc?1553b總線初始化函數(shù),命令行shell初始化函數(shù)ini_shell_func。4.如權(quán)利要求3所述的cpu隱式初始化方法,其特征在于,步驟s2中,將編譯器中的x以宏定義的方式替換為段名優(yōu)先級(jí)方式,x替換為“ini_fn”rank方式,其中rank為等級(jí)序號(hào)1、2、3以此類推,x參數(shù)由”ini_fn””1”、”ini_fn””2”、”ini_fn””3”表示等級(jí),數(shù)值越小,對(duì)應(yīng)的函數(shù)在段表中的位置越靠前。5.如權(quán)利要求4所述的cpu隱式初始化方法,其特征在于,步驟s3中,設(shè)置網(wǎng)絡(luò)初始化函數(shù)ini_wlan_fun為1級(jí)優(yōu)先級(jí),映射到段.ini_fn.1"中,設(shè)置arinc?1553b總線初始化函數(shù)ini_1553b_func為2級(jí)優(yōu)先級(jí),映射到段.ini_fn.2"中,設(shè)置命令行shell初始化函數(shù)ini_shell_func為3級(jí)優(yōu)先級(jí),映射到段.ini_fn.3"中。6.如權(quán)利要求5所述的cpu隱式初始化方法,其特征在于,步驟s3中,映射信息包括:符號(hào)名網(wǎng)絡(luò)初始化函數(shù)ini_wlan_fun、符號(hào)名arinc?1553b總線初始化函數(shù)ini_1553b_func和符號(hào)名命令行shell初始化函數(shù)ini_shell_func。7.如權(quán)利要求6所述的cpu隱式初始化方法,其特征在于,步驟s3中,符號(hào)名網(wǎng)絡(luò)初始化函數(shù)ini_wlan_fun中,符號(hào)地址value為0x200002c8,符號(hào)類型為data,存儲(chǔ)大小size為4,網(wǎng)絡(luò)初始化函數(shù)映射在段.ini_fn.1。8.如權(quán)利要求7所述的cpu隱式初始化方法,其特征在于,步驟s3中,符號(hào)名arinc1553b總線初始化函數(shù)ini_1553b_func中,符號(hào)地址value為0x200002cc,符號(hào)類型為data,存儲(chǔ)大小size為4,arinc?1553b總線初始化函數(shù)映射在段.ini_fn.2。9.如權(quán)利要求8所述的cpu隱式初始化方法,其特征在于,步驟s3中,符號(hào)名命令行shell初始化函數(shù)ini_shell_func中,符號(hào)地址value為0x200002d0,符號(hào)類型為data,存儲(chǔ)大小size為4,以及命令行shell初始化函數(shù)映射在段.ini_fn.3。10.如權(quán)利要求9所述的cpu隱式初始化方法,其特征在于,步驟s7中,section事先將所有的初始化函數(shù)加入到定義的輸入段中,然后再在main函數(shù)中將這個(gè)輸入段中初始化函數(shù)依次取出,在不修改main函數(shù)的前提下完成對(duì)系統(tǒng)的初始化。技術(shù)總結(jié)本發(fā)明公開(kāi)了一種CPU隱式初始化方法,定義初始化函數(shù);把一個(gè)初始化函數(shù)的地址輸出到一個(gè)獨(dú)立的section中,同時(shí)按照設(shè)定順序進(jìn)行排列;將初始化函數(shù)指針映射到對(duì)應(yīng)的段中;查看映射信息;定義函數(shù)ini_start_func,用來(lái)尋找段開(kāi)始位置;定義函數(shù)ini_end_func,用來(lái)判斷段結(jié)束位置;將函數(shù)ini_start_func的地址映射到段"ini_fn.0"中,將ini_end_func的地址映射到段"ini_fn.0"中,將ini_end_func的地址映射到段"ini_fn.z"中;進(jìn)行地址自增操作,遍歷取出section區(qū)域的指針數(shù)據(jù)復(fù)制給funcptrnum,通過(guò)函數(shù)尋址方式運(yùn)行此函數(shù)。本發(fā)明通過(guò)ARMGCC編譯器指令將初始化函數(shù)地址輸出到獨(dú)立的段中,并通過(guò)空函數(shù)地址標(biāo)記出開(kāi)始地址和結(jié)束地址,在主函數(shù)中遍歷運(yùn)行段開(kāi)始地址和結(jié)束地址間的函數(shù),完成初始化函數(shù)的運(yùn)行工作。技術(shù)研發(fā)人員:王雨龍受保護(hù)的技術(shù)使用者:天津津航計(jì)算技術(shù)研究所技術(shù)研發(fā)日:技術(shù)公布日:2025/1/2
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
大兴区| 宣城市| 南阳市| 天水市| 博湖县| 资兴市| 沛县| 太保市| 鹰潭市| 丽水市| 宜阳县| 德兴市| 鹤峰县| 宜兴市| 花莲县| 兰溪市| 元朗区| 马山县| 舒兰市| 隆安县| 苗栗县| 颍上县| 横峰县| 玉环县| 承德县| 且末县| 六枝特区| 东乡县| 乌兰浩特市| 保定市| 邯郸县| 万山特区| 犍为县| 龙岩市| 礼泉县| 古田县| 永年县| 华蓥市| 灵武市| 六盘水市| 孟村|