liteOS-A学习笔记-04 Liteos-a的编译系统-4-2_编译哪些子目录

1.从链接命令看内核的组成

1.1 链接命令如下

liteOS由一系列库组成,reset_vector是它的入口。
-T:链接脚本 liteos_llvm.ld;
-Map:内存地址文件 liteos.map;
-o:目标文件 liteos;
-libraries:需要的库文件
例如 -lcortex-a7 -lbsp -lrootfs -lbase -lboard -ltickless… 即把lib board.a编译进入目标文件中去;

那么如何找到这些库的位置呢?例如,tickless这个库文件是如何得到的呢?
答:(1)搜索tickless得到路径“OpenharmonyFor6ull\kernel\liteos_a\kernel\extended\tickless”下面存放我们需要的库文件的源代码“los_tickless.c”。
(2)查看下makefile

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 查看map文件

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

也可以看到异常向量表放置在最前面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值