liteOS-研究ノート-04Liteos-コンパイルシステム-4-2_どのサブディレクトリがコンパイルされるか

1.linkコマンドからカーネルの構成を確認します

1.1リンクコマンドは次のとおりです

liteOSは一連のライブラリで構成されており、reset_vectorがその入り口です。
-T:リンクスクリプトliteos_llvm.ld; -Map
:メモリアドレスファイルliteos.map;
-o:オブジェクトファイルliteos;
-libraries:
-lcortex-a7 -lbsp -lrootfs -lbase -lboard-lticklessなどの必要なライブラリファイル。 。libboard.aをターゲットファイルにコンパイルします。

では、これらのライブラリの場所を見つける方法は?たとえば、ティックレスライブラリファイルはどのように取得されますか?
回答:(1)ティックレスを検索してパス「OpenharmonyFor6ull \ kernel \ liteos_a \ kernel \ extends \ tickless」を取得し、必要なライブラリファイルのソースコード「los_tickless.c」を保存します。
(2)メイクファイルを確認します

include $(LITEOSTOPDIR)/config.mk
## MODULE_NAME :=tickless
MODULE_NAME := $(notdir $(shell pwd))
## LOCAL_SRCS  := los_tickless.c
LOCAL_SRCS := $(wildcard *.c)

LOCAL_INCLUDE := \
        -I $(LITEOSTOPDIR)/kernel/base/include -I $(LITEOSTOPDIR)/kernel/extended/include \
        -I $(LITEOSTOPDIR)/kernel/base/core

LOCAL_FLAGS := $(LOCAL_INCLUDE)

include $(MODULE)

1.2リンクスクリプトを見てください-エントリ関数を見つけてください

OpenharmonyFor6ull_Weidongshan_SourceCode \ kernel \ liteos_a \ tools \ build \ liteos_llvm.ld

ENTRY(reset_vector) ## 入口函数
INCLUDE board.ld
INPUT(libuserinit.O)
SECTIONS
{
    
    
 ...
}

1.3ビュー入力機能

Openharmony_CommentByLine \ kernel_liteos_a_note \ arch \ arm \ arm \ src \ startup \ reset_vector_up.S

1.4マップファイルを表示する

Openharmony_CommentByLine \ kernel_liteos_a_note \ kernel \ liteos_a \ out \ imx6ull \ liteos.map

また、異常ベクトルテーブルが一番上に配置されていることがわかります。

おすすめ

転載: blog.csdn.net/xiaoaojianghu09/article/details/110770026