Working
This commit is contained in:
		
						commit
						8b34c6b1cd
					
				
					 3 changed files with 107 additions and 0 deletions
				
			
		
							
								
								
									
										65
									
								
								Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,65 @@ | ||||||
|  | REV := master | ||||||
|  | BASE := https://raw.githubusercontent.com/cnlohr/ch32v003fun/$(REV)/ch32fun | ||||||
|  | CURL_FLAGS := -O -\# --fail --location --tlsv1.2 --proto =https --max-time 300 | ||||||
|  | 
 | ||||||
|  | TARGET = blink | ||||||
|  | TARGET_MCU?=CH32V003 | ||||||
|  | NEWLIB=/usr/arm-none-eabi/include | ||||||
|  | CFLAGS=-g -Os -flto -ffunction-sections -fdata-sections -fmessage-length=0 -msmall-data-limit=8 | ||||||
|  | LDFLAGS+=-Wl,--print-memory-usage -Wl,-Map=$(TARGET).map | ||||||
|  | PREFIX := riscv64-linux-gnu | ||||||
|  | CC := $(PREFIX)-gcc | ||||||
|  | 
 | ||||||
|  | # riscv64-linux-gnu-gcc -E -P -x c -DTARGET_MCU=CH32V003 -DMCU_PACKAGE= -DTARGET_MCU_LD=0 -DTARGET_MCU_MEMORY_SPLIT= ../../ch32fun/ch32fun.ld > ../../ch32fun/generated_ch32v003.ld
 | ||||||
|  | # riscv64-linux-gnu-gcc -o blink.elf ../../ch32fun/ch32fun.c blink.c   -g -Os -flto -ffunction-sections -fdata-sections -fmessage-length=0 -msmall-data-limit=8 -march=rv32ec -mabi=ilp32e -DCH32V003=1 -static-libgcc -I/usr/arm-none-eabi/include -I../../ch32fun/../extralibs -I../../ch32fun -nostdlib -I. -Wall  -Wl,--print-memory-usage -Wl,-Map=blink.map -L../../ch32fun/../misc -lgcc -T ../../ch32fun/generated_ch32v003.ld -Wl,--gc-sections
 | ||||||
|  | 
 | ||||||
|  | # Correct?
 | ||||||
|  | EXTFLAGS := -march=rv32ec -mabi=ilp32e -DCH32V003=1 -static-libgcc -I/usr/arm-none-eabi/include -nostdlib -I. -Wall -L. -lgcc -T ch32v003.ld -Wl,--gc-sections | ||||||
|  | 
 | ||||||
|  | default: $(TARGET).bin | ||||||
|  | 
 | ||||||
|  | $(TARGET).elf: ch32fun.c blink.c | ch32v003.ld ch32fun.h ch32v003hw.h | ||||||
|  | 	@echo CC $@ | ||||||
|  | 	@$(CC) $(CFLAGS) $(LDFLAGS) $(EXTFLAGS) -o $@ $^ | ||||||
|  | 
 | ||||||
|  | ch32v003.ld: ch32fun.ld | ||||||
|  | 	@riscv64-linux-gnu-gcc -E -P -x c -DTARGET_MCU=$(TARGET_MCU) -DMCU_PACKAGE= -DTARGET_MCU_LD=0 -DTARGET_MCU_MEMORY_SPLIT= $< > $@ | ||||||
|  | 
 | ||||||
|  | ch32fun.ld: | ||||||
|  | 	@curl $(CURL_FLAGS) $(BASE)/ch32fun.ld | ||||||
|  | 
 | ||||||
|  | ch32fun.c: | ||||||
|  | 	@curl $(CURL_FLAGS) $(BASE)/ch32fun.c | ||||||
|  | 
 | ||||||
|  | ch32v003hw.h: | ||||||
|  | 	@curl $(CURL_FLAGS) $(BASE)/ch32v003hw.h | ||||||
|  | 
 | ||||||
|  | ch32fun.h: | ||||||
|  | 	@curl $(CURL_FLAGS) $(BASE)/ch32fun.h | ||||||
|  | 
 | ||||||
|  | deps: | ||||||
|  | 	@curl $(CURL_FLAGS) $(BASE)/ch32fun.ld | ||||||
|  | 	@curl $(CURL_FLAGS) $(BASE)/ch32v003hw.h | ||||||
|  | 	@curl $(CURL_FLAGS) $(BASE)/ch32fun.c | ||||||
|  | 	@curl $(CURL_FLAGS) $(BASE)/ch32fun.h | ||||||
|  | 
 | ||||||
|  | $(TARGET).bin : $(TARGET).elf | ||||||
|  | 	$(PREFIX)-objdump -S $^ > $(TARGET).lst | ||||||
|  | 	$(PREFIX)-objcopy -O binary $< $(TARGET).bin | ||||||
|  | 	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex | ||||||
|  | 
 | ||||||
|  | flash: | ||||||
|  | 	minichlink -w $(TARGET).bin flash -b | ||||||
|  | 
 | ||||||
|  | clean: | ||||||
|  | 	rm -f ch32*.[ch] | ||||||
|  | 	rm -f *.ld | ||||||
|  | 	rm -f *.hex | ||||||
|  | 	rm -f *.bin | ||||||
|  | 	rm -f *.map | ||||||
|  | 	rm -f *.lst | ||||||
|  | 	rm -f *.elf | ||||||
|  | 	rm -f *.ld | ||||||
|  | 
 | ||||||
|  | .PHONY: clean flash deps default | ||||||
|  | 
 | ||||||
							
								
								
									
										35
									
								
								blink.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								blink.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | ||||||
|  | #include "ch32fun.h" | ||||||
|  | #include <stdio.h> | ||||||
|  | 
 | ||||||
|  | // use defines to make more meaningful names for our GPIO pins
 | ||||||
|  | #define PIN_1 PD0 | ||||||
|  | #define PIN_K PD4 | ||||||
|  | #define PIN_BOB PD6 | ||||||
|  | #define PIN_KEVIN PC0 | ||||||
|  | 
 | ||||||
|  | int main() | ||||||
|  | { | ||||||
|  | 	SystemInit(); | ||||||
|  | 
 | ||||||
|  | 	// Enable GPIOs
 | ||||||
|  | 	funGpioInitAll(); | ||||||
|  | 	 | ||||||
|  | 	funPinMode( PIN_1,     GPIO_Speed_10MHz | GPIO_CNF_OUT_PP ); | ||||||
|  | 	funPinMode( PIN_K,     GPIO_Speed_10MHz | GPIO_CNF_OUT_PP ); | ||||||
|  | 	funPinMode( PIN_BOB,   GPIO_Speed_10MHz | GPIO_CNF_OUT_PP ); | ||||||
|  | 	funPinMode( PIN_KEVIN, GPIO_Speed_10MHz | GPIO_CNF_OUT_PP ); | ||||||
|  | 
 | ||||||
|  | 	while(1) | ||||||
|  | 	{ | ||||||
|  | 		funDigitalWrite( PIN_1,     FUN_HIGH ); | ||||||
|  | 		funDigitalWrite( PIN_K,     FUN_HIGH ); | ||||||
|  | 		funDigitalWrite( PIN_BOB,   FUN_HIGH ); | ||||||
|  | 		funDigitalWrite( PIN_KEVIN, FUN_HIGH ); | ||||||
|  | 		Delay_Ms( 250 ); | ||||||
|  | 		funDigitalWrite( PIN_1,     FUN_LOW ); | ||||||
|  | 		funDigitalWrite( PIN_K,     FUN_LOW ); | ||||||
|  | 		funDigitalWrite( PIN_BOB,   FUN_LOW ); | ||||||
|  | 		funDigitalWrite( PIN_KEVIN, FUN_LOW ); | ||||||
|  | 		Delay_Ms( 250 ); | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										7
									
								
								funconfig.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								funconfig.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | ||||||
|  | #ifndef _FUNCONFIG_H | ||||||
|  | #define _FUNCONFIG_H | ||||||
|  | 
 | ||||||
|  | #define CH32V003           1 | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Imbus
						Imbus