裸机程序转换成PMON引导程序
根据勤为本 gitee 上的龙芯1C 裸机程序(应用于白菜板),修改 Makefile 和 ld.script 和 start.s 使之应用于智龙开发板。
1. 替换修改文件
1.1 make与ld.script
将 Makefile 与 ld.script 复制到 勤为本的 src 目录下,替换原来的文件。
Makefile 修改部分为 All:
# 所有的文件
ALL_HEADER_FILE = $(HEADERS)
ALL_SRC = $(SRC_S) $(SRC_C)
# 最终的目标文件
DEST = OpenLoongsonLib1c
all:$(DEST)
$(DEST):$(ALL_SRC) $(ALL_HEADER_FILE)
${CC} -g -O2 -Wall -fno-pic -N -o $(DEST) $(ALL_SRC) $(CCFLAGS) $(INCLUDES) -static -nostartfiles -e main -Wl,-m -Wl,elf32ltsmip -T ld.script
# cp $(DEST) /tftpboot/
clean:
rm -f $(DEST) *.o
ld.script文件中,将SECTIONS的起始地址改为: 0x802000000
1.2 sdram_cfg.h
第42行
#if 1
// 白菜板8MB
//如果是智龙开发板,这里改成
#if 0
2. 编译
在 cmd 中运行命令
mingw32-make
可生成 可执行 文件 openloongsonlib1c
3. clean
在 cmd 中运行命令
mingw32-make clean
可清除 可执行 文件 openloongsonlib1c
4.start.s 修改部分为
只留下:
.globl general_exception
.globl handle_int
.globl handle_reserved
添加:
.section ".text"
其实还应该删除一些 start.s 中的部分代码,因为不需要将数据从 spi flash 中搬到ram。 现在是从 0x802000000 中启动。还没有研究透彻,暂时不修改了。
扫描二维码关注公众号,回复:
11317204 查看本文章