開源項目見:首發(fā)!成功移植OpenHarmony到龍芯開發(fā)板,代碼開源~
1、啟動文件和鏈接腳本
龍芯開發(fā)板的板級代碼位于:deviceloongsonls1c300b_hrst 文件夾。其中,啟動文件位于 deviceloongsonls1c300b_hrstsrclib 文件夾下,文件名:start.S 文件
鏈接腳本:deviceloongsonls1c300b_hrst 文件夾下:ld.script 文件
可以看到鏈接的地址是 0x80200000,也就是說我們編譯出來的固件要加載到這個地址運行。
2、系統(tǒng)啟動流程
代碼啟動流程圖如下,首先 start 函數(shù)會做芯片相關(guān)初始化,然后跳轉(zhuǎn)到main函數(shù),接下來會調(diào)用bsp_init進行板級初始化,包括串口初始化等,接下來進入 run_los 函數(shù),進行LOS_KernelInit內(nèi)核初始化,create_test_task創(chuàng)建測試線程,最后調(diào)用LOS_Start啟動內(nèi)核。
流程如下:
3、main函數(shù)
啟動文件 start.S 中會執(zhí)行CPU相關(guān)的初始化,例如內(nèi)存初始化、代碼拷貝、BSS段清零等。最后會執(zhí)行main函數(shù),如下:
我們來看下main函數(shù):
可以看到main函數(shù)首先執(zhí)行 bsp_init 進行板級初始化,bsp_init 函數(shù)主要執(zhí)行串口初始化、硬浮點初始化,中斷初始化等,最后打印CPU時鐘:
clk_print_all 函數(shù)打印的CPU時鐘信息可以在通過打印看到,如下:
執(zhí)行完 bsp_init 初始化后,會開始執(zhí)行 run_los 執(zhí)行openharmony內(nèi)核,代碼如下:
create_test_task 會根據(jù)相關(guān)的宏創(chuàng)建對應(yīng)的測試線程,開發(fā)者可以根據(jù)需要打開相應(yīng)測試:
原文標(biāo)題:龍芯 openharmony 課程 【2】啟動分析
文章出處:【微信公眾號:HarmonyOS官方合作社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97372 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68524 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3713瀏覽量
16254
原文標(biāo)題:龍芯 openharmony 課程 【2】啟動分析
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論