e200_SDK开发环境分析

e200的SDK(Software Development Kit)平台主要是由Makefile脚本、板级支持包(BSP)、链接脚本和软件示例组成的开发环境。
BSP主要目录内容为:
(1)bsp/hbirds-e200/drivers,存放驱动程序代码,包括hclkgen(High-Speed Clock Generation),PLIC(Platform-Level Interrupt Controller),关于PLIC可参考https://blog.csdn.net/moonllz/article/details/52251788;
(2)bsp/hbirds-e200/include,存放外设寄存器地址
(3)bsp/hbirds-e200/stubs,存放C运行库Newlib的桩函数,具体分析见https://blog.csdn.net/qq_40946355/article/details/104732234
(4)bsp/hbirds-e200/env,存放着系统启动、初始化、异常中断、链接文件,其中common.mk,start.S常用
下面以Hello World.c为例了解Makefile编写的程序编译过程

TARGET = hello_world
生成的elf文件名

BSP_BASE = ../../bsp

C_SRCS += hello_world.c

include $(BSP_BASE)/$(BOARD)/env/common.mk

CFLAGS += -O2
//makefile有一个特性,对于未定义的变量会在其他命令行寻找
//因此只需要将编译命令集成到一个文件里include进来即可
//CFLAGS为C编译命令,在risc中调用gcc编译,优化级别为O2

对于CFLAGS的具体命令,打开common.mk查找CFLAGS

CFLAGS += -g
CFLAGS += -march=$(RISCV_ARCH)
//-march=用于指定RISC-V平台所支持的模块化指令集组合
CFLAGS += -mabi=$(RISCV_ABI)
//-mabi=用于指定嵌入式RISC-V平台所支持的ABI函数调用规则
CFLAGS +=   -ffunction-sections -fdata-sections -fno-common
ifeq ($(REPLACE_PRINTF),1) 
CFLAGS +=   -fno-builtin-printf -fno-builtin-malloc 
endif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值