1. 将文件夹LED拷贝到安装配置好sdcc的Linux系统中 2. 在文件目录下make。 3. Make通过之后,然后再进行make hex。生成可下载的hex文件 4. 通过烧写工具将hex文件烧写到目标板子中 5. 可以使用make clean 删除所有编译生成的文件 程序实现led灯的闪烁 Config.h文件 #ifndef _CONFIG_H_ #define _CONFIG_H_ //系统时钟频率 #define F_CPU 12000000UL //LED显示 #define LED P0, 7 #endif Macromcu.h文件 #ifndef _MACRO_MCU_H_ #define _MACRO_MCU_H_ 1 #include #define MACRO_ARG21(a, b) a #define MACRO_ARG22(a, b) b #define PINSET(pin) MACRO_ARG21(pin) |= 1 << MACRO_ARG22(pin) #define PINCLR(pin) MACRO_ARG21(pin) &= ~(1 << MACRO_ARG22(pin)) #define PININV(pin) MACRO_ARG21(pin) ^= 1 << MACRO_ARG22(pin) #define PININ(pin) MACRO_ARG21(pin) & (1 << MACRO_ARG22(pin)) #endif Hardware.h文件 #ifndef _HARDWARE_H_ #define _HARDWARE_H_ 1 #include #include "config.h" #include "macromcu.h" extern void IO_init(); #endif Hardware.c文件 #include "config.h" #include "macromcu.h" #include "hardware.h" void IO_init() { PINCLR(LED); } Demo.c文件 #include "hardware.h" void delay() { volatile unsigned int n; for(n = 0; n < 50000; n++); } int main(void) { IO_init(); while(1) { PINSET(LED); delay(); PINCLR(LED); delay(); } return 0; } Makefile文件 MAIN := demo OBJECTS := $(MAIN).rel hardware.rel SOURCES := $(MAIN).c hardware.c HEADERS := config.h hardware.h macromcu.h main: $(OBJECTS) sdcc $(OBJECTS) hardware.rel: $(HEADERS) hardware.c sdcc -c hardware.c $(MAIN).rel: $(HEADERS) $(MAIN).c sdcc -c $(MAIN).c hex: packihx $(MAIN).ihx > $(MAIN).hex objcopy -I ihex -O binary $(MAIN).hex $(MAIN).bin clean: mkdir temp cp *.c *.h temp rm *.* cp temp/*.* ./ rm -rf temp |
更多回帖