From: mahi Date: Sun, 20 Sep 2009 08:21:20 +0000 (+0200) Subject: Support for case insenstive make. msys make that is X-Git-Url: http://rtime.felk.cvut.cz/gitweb/arc.git/commitdiff_plain/4df39b865ad69dedea88022d5ecd35bba4d81681 Support for case insenstive make. msys make that is --- diff --git a/.hgignore b/.hgignore new file mode 100644 index 00000000..31879aea --- /dev/null +++ b/.hgignore @@ -0,0 +1,16 @@ +# use glob syntax. +syntax: glob + +*.d +*.o +*.elf +*.map +*.hex +*.bak +*~ + +# switch to regexp syntax. +syntax: regexp +^.*obj_.*\.[h|c|s] + + diff --git a/arch/arm/arm_cm3/drivers/misc.c b/arch/arm/arm_cm3/drivers/misc.c index c662b888..7dc12955 100644 --- a/arch/arm/arm_cm3/drivers/misc.c +++ b/arch/arm/arm_cm3/drivers/misc.c @@ -43,6 +43,8 @@ /* Includes ------------------------------------------------------------------*/ #include "misc.h" + +#define assert_param(expr) ((void)0) /** @addtogroup STM32F10x_StdPeriph_Driver * @{ diff --git a/arch/arm/arm_cm3/kernel/Frt.c b/arch/arm/arm_cm3/kernel/Frt.c index 6a65c435..e1322a19 100644 --- a/arch/arm/arm_cm3/kernel/Frt.c +++ b/arch/arm/arm_cm3/kernel/Frt.c @@ -54,6 +54,9 @@ void Frt_Start(uint32_t period_ticks) { SysTick_Config(period_ticks); + /* Set SysTick Priority to 3 */ + NVIC_SetPriority(SysTick_IRQn, 0x0C); + #if 0 // SysTick interrupt each 250ms with counter clock equal to 9MHz if (SysTick_Config((SystemFrequency / 8) / 4)) { diff --git a/arch/arm/arm_cm3/kernel/arch.c b/arch/arm/arm_cm3/kernel/arch.c index c7d465c3..6e1b5539 100644 --- a/arch/arm/arm_cm3/kernel/arch.c +++ b/arch/arm/arm_cm3/kernel/arch.c @@ -30,6 +30,7 @@ #include "arch_offset.h" #include "stm32f10x.h" #include "core_cm3.h" +#include "arch.h" /** * Function make sure that we switch to supervisor mode(rfi) before @@ -62,7 +63,8 @@ void os_arch_setup_context( pcb_t *pcb ) { context[VGPR_LR_OFF/4] = (uint32_t)os_proc_start_extended; } else if( pcb->proc_type == PROC_BASIC ) { context[VGPR_LR_OFF/4] = (uint32_t)os_proc_start_basic; - } + } + os_arch_stack_set_endmark(pcb); // os_arch_setup_context_asm(pcb->stack.curr,NULL); } diff --git a/arch/arm/arm_cm3/kernel/arch_krn.S b/arch/arm/arm_cm3/kernel/arch_krn.sx similarity index 83% rename from arch/arm/arm_cm3/kernel/arch_krn.S rename to arch/arm/arm_cm3/kernel/arch_krn.sx index 61972757..cd5b90f2 100644 --- a/arch/arm/arm_cm3/kernel/arch_krn.S +++ b/arch/arm/arm_cm3/kernel/arch_krn.sx @@ -25,9 +25,9 @@ * */ .global os_arch_swap_context - .type os_arch_swap_context_to, %function + .type os_arch_swap_context, %function os_arch_swap_context: - mov r0, sp +// mov r2, sp push {r4-r8,r10,r11,lr} // Store c-frame @@ -35,11 +35,12 @@ os_arch_swap_context: mov.w r4,#SC_PATTERN str r4,[sp,#C_CONTEXT_OFFS] - str r0,[sp,#C_SP_OFF] +// str r2,[sp,#C_SP_OFF] // ---> We have saved NVGPR+C // store old stack for old task - str sp,[r0,#PCB_STACK_CURR_P] + mov.w r4,sp + str r4,[r0,#PCB_STACK_CURR_P] // R1 - new PCB .global os_arch_swap_context_to @@ -48,7 +49,9 @@ os_arch_swap_context_to: // Get stack for new task ldr r2,[r1,#PCB_STACK_CURR_P] - msr msp,r2 +// msr msp,r2 + mov.w sp,r2 + // TODO: Fix this for all arch's..call pre,post hooks. Done here or after? // Set new current pcb @@ -74,7 +77,7 @@ os_sc_restore: os_lc_restore: add.w sp,sp,#C_SIZE - pop {lr,r11,r10,r8,r7,r6,r5,r4} + pop {r4-r8,r10,r11,lr} // ehh, we are in handler mode so a bx instruction works here bx lr diff --git a/arch/arm/arm_cm3/kernel/int_ctrl.c b/arch/arm/arm_cm3/kernel/int_ctrl.c index 5bd1a458..473ab8c0 100644 --- a/arch/arm/arm_cm3/kernel/int_ctrl.c +++ b/arch/arm/arm_cm3/kernel/int_ctrl.c @@ -34,6 +34,7 @@ #include "hooks.h" #include "swap.h" #include "stm32f10x.h" +#include "misc.h" #include "int_ctrl.h" extern void * intc_vector_tbl[NUMBER_OF_INTERRUPTS_AND_EXCEPTIONS]; @@ -105,11 +106,19 @@ void IntCtrl_AttachIsr1( void (*entry)(void), void *int_ctrl, uint32_t vector, u */ void IntCtrl_AttachIsr2(TaskType tid,void *int_ctrl,uint32_t vector ) { pcb_t *pcb; + NVIC_InitTypeDef irqInit; + + NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); + + irqInit.NVIC_IRQChannel = vector; + irqInit.NVIC_IRQChannelPreemptionPriority = 4; + irqInit.NVIC_IRQChannelSubPriority = 4; + irqInit.NVIC_IRQChannelCmd = ENABLE; pcb = os_find_task(tid); // TODO: Same as for AttachIsr1 - + NVIC_Init(&irqInit); } diff --git a/arch/ppc/crt0.S b/arch/ppc/crt0.sx similarity index 100% rename from arch/ppc/crt0.S rename to arch/ppc/crt0.sx diff --git a/arch/ppc/mpc55xx/drivers/Mcu_Exceptions.S b/arch/ppc/mpc55xx/drivers/Mcu_Exceptions.sx similarity index 100% rename from arch/ppc/mpc55xx/drivers/Mcu_Exceptions.S rename to arch/ppc/mpc55xx/drivers/Mcu_Exceptions.sx diff --git a/arch/ppc/mpc55xx/kernel/arch_krn.S b/arch/ppc/mpc55xx/kernel/arch_krn.sx similarity index 100% rename from arch/ppc/mpc55xx/kernel/arch_krn.S rename to arch/ppc/mpc55xx/kernel/arch_krn.sx diff --git a/examples/tiny/makefile b/examples/tiny/makefile index 5ee5caa4..da948dda 100644 --- a/examples/tiny/makefile +++ b/examples/tiny/makefile @@ -25,7 +25,11 @@ libitem-y += $(ROOTDIR)/libs/libkernel_$(ARCH_MCU).a ldcmdfile-y = -T $(ROOTDIR)/$(ARCH_PATH-y)/scripts/linkscript_gcc.ldf # What I want to build -build-exe-y = simple.elf +build-exe-y = tiny.elf +build-hex-y = tiny.hex + + + diff --git a/scripts/cc_gcc.mk b/scripts/cc_gcc.mk index 0ec3a6e4..4e34720d 100644 --- a/scripts/cc_gcc.mk +++ b/scripts/cc_gcc.mk @@ -55,16 +55,18 @@ CPP = $(CC) -E comma = , empty = -space = $(empty) $(empty) +space = $(empty) $(empty) # Note! # Libs related to GCC(libgcc.a, libgcov.a) is located under # lib/gcc/// # Libs related to the library (libc.a,libm.a,etc) are under: # /lib/ -gcc_lib_path := "$(subst /libgcc.a,,$(shell $(CC) $(CFLAGS) --print-libgcc-file-name $(conv_path)))" -#$(error $(gcc_lib_path)) -lib_lib_path := "$(subst /libc.a,,$(shell $(CC) $(CFLAGS) --print-file-name\=libc.a $(conv_path)))" + +# It seems some versions of make want "\=" and some "=" +# "=" - msys cpmake on windows 7 +gcc_lib_path := "$(subst /libgcc.a,,$(shell $(CC) $(CFLAGS) --print-libgcc-file-name))" +lib_lib_path := "$(subst /libc.a,,$(shell $(CC) $(CFLAGS) --print-file-name=libc.a))" libpath-y += -L$(lib_lib_path) libpath-y += -L$(gcc_lib_path) # --------------------------------------------------------------------------- diff --git a/scripts/rules.mk b/scripts/rules.mk index a32aff82..557dc719 100644 --- a/scripts/rules.mk +++ b/scripts/rules.mk @@ -64,7 +64,7 @@ config: @echo $(MOD) ${def-y} # build- targets are "end" target that the included makefile want's to build -all: $(build-lib-y) $(build-exe-y) +all: $(build-lib-y) $(build-exe-y) $(build-hex-y) # Determine what kind of filetype to build from VPATH += $(ROOTDIR)/$(SUBDIR)/src @@ -93,11 +93,7 @@ inc-y += ../include # PP Assembler #.SECONDARY %.s: -%.s: %.S - @echo " >> CPP $(notdir $<)" - $(Q)$(CPP) -o $@ $(addprefix -I ,$(inc-y)) $(addprefix -D,$(def-y)) $< - -%.s: %.ps +%.s: %.sx @echo " >> CPP $(notdir $<)" $(Q)$(CPP) -x assembler-with-cpp -o $@ $(addprefix -I ,$(inc-y)) $(addprefix -D,$(def-y)) $< @@ -115,6 +111,10 @@ $(build-lib-y): $(dep-y) $(obj-y) @echo " >> AR $@" $(Q)$(AR) -r -o $@ $(obj-y) 2> /dev/null +$(build-hex-y): $(build-exe-y) + @echo " >> OBJCOPY $@" + $(Q)$(CROSS_COMPILE)objcopy -O ihex $< $@ + # Could use readelf -S instead of parsing the *.map file. $(build-exe-y): $(obj-y) $(sim-y) $(libitem-y) @echo " >> LD $@" diff --git a/system/kernel/makefile b/system/kernel/makefile index d31a2aaf..ce2d6290 100644 --- a/system/kernel/makefile +++ b/system/kernel/makefile @@ -33,6 +33,8 @@ def-y+=CC_KERNEL dep-y += asm_offset.h dep-y += kernel_offset.h dep-$(CFG_ARM_CM3) += arch_offset.h +obj-$(CFG_ARM_CM3) += misc.o + # ARM assembler generates "define STACK_APA $12". The extra '$' we want to go. # Assembler offsets diff --git a/tools/t32/load.cmm b/tools/t32/load.cmm index 8c4fcebc..9eaaf639 100644 --- a/tools/t32/load.cmm +++ b/tools/t32/load.cmm @@ -27,7 +27,7 @@ load: do config save do flash open - data.load.elf &cfg_loadfile_g c /CYGDRIVE /GNU + data.load.elf &cfg_loadfile_g /CYGDRIVE /GNU do flash close print "&cfg_loadfile_g" @@ -120,5 +120,6 @@ path: +