改正国嵌Makefile对底层目录更改无响应的毛病

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
OBJS := start.o mem.o main.o dev/dev.o lib/lib.o

CFLAGS = -fno-builtin -I$(shell pwd)/include
export CFLAGS

gbbot.bin : $(OBJS)
arm-linux-ld -Tgboot.lds -o gboot.elf $^
arm-linux-objcopy -O binary gboot.elf $@

%.o : %.S
arm-linux-gcc -g -c $<

%.o : %.c
arm-linux-gcc -g $(CFLAGS) -c $<

.PHONY : lib/lib.o @ 根据其他的Makefile琢磨出来的一种响应底层目录文件更改后Makefile不响应的解决之道
lib/lib.o:
cd lib; make; cd ..

.PHONY : dev/dev.o
dev/dev.o:
cd dev; make; cd ..

clean:
rm -f *.o *.elf *.bin
make clean -C lib

make clean -C dev

阅读全文

串口终端没有打印字符

​ 首先是UART.c上的错误,这个错误比较低级,由于将putc中的这个寄存器UFSTAT0写错了,还是写的以前那个没有开FIFO使用的寄存器,那也就导致了UART打印的字符乱码了,这个是根据源码一步一步找到的(替换文件,一个个来找),但是这个问题还不是最终需要解决的问题。

阅读全文

Linux下的栈的实现

Linux下的栈是由glibc这个库,glibc其实是C运行库,它提供了Linux系统最底层的API(应用程序接口),glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。

阅读全文