From 2fff65aed2477a503c72629d27e2a330d30c02d1 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 25 Jan 2017 22:23:13 +0100 Subject: o Seemingly working Mutexes. o Dropping the privileged/unprivileged split for now. --- .../HiTOP/STM3210X-XL_BANK1/Settings/arm_arch.lsl | 287 --------------------- .../STM3210X-XL_BANK1/Settings/reset_go_main.scr | 12 - .../HiTOP/STM3210X-XL_BANK2/cstart_thumb2.asm | 148 ----------- 3 files changed, 447 deletions(-) delete mode 100644 tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK1/Settings/arm_arch.lsl delete mode 100644 tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK1/Settings/reset_go_main.scr delete mode 100644 tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK2/cstart_thumb2.asm (limited to 'tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP') diff --git a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK1/Settings/arm_arch.lsl b/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK1/Settings/arm_arch.lsl deleted file mode 100644 index 3e6d303..0000000 --- a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK1/Settings/arm_arch.lsl +++ /dev/null @@ -1,287 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// File : arm_arch.lsl -// -// Version : @(#)arm_arch.lsl 1.4 09/04/17 -// -// Description : Generic LSL file for ARM architectures -// -// Copyright 2008-2009 Altium BV -// -//////////////////////////////////////////////////////////////////////////// - -#ifndef __STACK -# define __STACK 32k -#endif -#ifndef __HEAP -# define __HEAP 32k -#endif -#ifndef __STACK_FIQ -# define __STACK_FIQ 8 -#endif -#ifndef __STACK_IRQ -# define __STACK_IRQ 8 -#endif -#ifndef __STACK_SVC -# define __STACK_SVC 8 -#endif -#ifndef __STACK_ABT -# define __STACK_ABT 8 -#endif -#ifndef __STACK_UND -# define __STACK_UND 8 -#endif -#ifndef __PROCESSOR_MODE -# define __PROCESSOR_MODE 0x1F /* SYS mode */ -#endif -#ifndef __IRQ_BIT -# define __IRQ_BIT 0x80 /* IRQ interrupts disabled */ -#endif -#ifndef __FIQ_BIT -# define __FIQ_BIT 0x40 /* FIQ interrupts disabled */ -#endif - -#define __APPLICATION_MODE (__PROCESSOR_MODE | __IRQ_BIT | __FIQ_BIT) - -#ifndef __VECTOR_TABLE_ROM_ADDR -# define __VECTOR_TABLE_ROM_ADDR 0x00000000 -#endif - -#ifndef __VECTOR_TABLE_RAM_ADDR -# define __VECTOR_TABLE_RAM_ADDR 0x00000000 -#endif - -#if defined(__CPU_ARMV7M__) || defined(__CPU_ARMV6M__) -# ifndef __NR_OF_VECTORS -# define __NR_OF_VECTORS 16 -# endif -# define __VECTOR_TABLE_SIZE (__NR_OF_VECTORS * 4) -#else -# ifdef __PIC_VECTORS -# define __VECTOR_TABLE_SIZE 64 -# else -# ifdef __FIQ_HANDLER_INLINE -# define __VECTOR_TABLE_SIZE 28 -# define __NR_OF_VECTORS 7 -# else -# define __VECTOR_TABLE_SIZE 32 -# define __NR_OF_VECTORS 8 -# endif -# endif -#endif - -#ifndef __VECTOR_TABLE_RAM_SPACE -# undef __VECTOR_TABLE_RAM_COPY -#endif - -#ifndef __XVWBUF -# define __XVWBUF 0 /* buffer used by CrossView Pro */ -#endif - -#define BOUNDS_GROUP_NAME grp_bounds -#define BOUNDS_GROUP_SELECT "bounds" - -architecture ARM -{ - endianness - { - little; - big; - } - - space linear - { - id = 1; - mau = 8; - map (size = 4G, dest = bus:local_bus); - - copytable - ( - align = 4, - copy_unit = 1, - dest = linear - ); - - start_address - ( - // It is not strictly necessary to define a run_addr for _START - // because hardware starts execution at address 0x0 which should - // be the vector table with a jump to the relocatable _START, but - // an absolute address can prevent the branch to be out-of-range. - // Or _START may be the entry point at reset and the reset handler - // copies the vector table to address 0x0 after some ROM/RAM memory - // re-mapping. In that case _START should be at a fixed address - // in ROM, specifically the alias of address 0x0 before memory - // re-mapping. -#ifdef __START - run_addr = __START, -#endif - symbol = "_START" - ); - - stack "stack" - ( -#ifdef __STACK_FIXED - fixed, -#endif - align = 4, - min_size = __STACK, - grows = high_to_low - ); - - heap "heap" - ( -#ifdef __HEAP_FIXED - fixed, -#endif - align = 4, - min_size=__HEAP - ); - -#if !defined(__CPU_ARMV7M__) && !defined(__CPU_ARMV6M__) - stack "stack_fiq" - ( - fixed, - align = 4, - min_size = __STACK_FIQ, - grows = high_to_low - ); - stack "stack_irq" - ( - fixed, - align = 4, - min_size = __STACK_IRQ, - grows = high_to_low - ); - stack "stack_svc" - ( - fixed, - align = 4, - min_size = __STACK_SVC, - grows = high_to_low - ); - stack "stack_abt" - ( - fixed, - align = 4, - min_size = __STACK_ABT, - grows = high_to_low - ); - stack "stack_und" - ( - fixed, - align = 4, - min_size = __STACK_UND, - grows = high_to_low - ); -#endif - -#if !defined(__NO_AUTO_VECTORS) && !defined(__NO_DEFAULT_AUTO_VECTORS) -# if defined(__CPU_ARMV7M__) || defined(__CPU_ARMV6M__) - // vector table with handler addresses - vector_table "vector_table" ( vector_size = 4, size = __NR_OF_VECTORS, run_addr = __VECTOR_TABLE_ROM_ADDR, - template = ".text.handler_address", - template_symbol = "_lc_vector_handler", - vector_prefix = "_vector_", - fill = loop, - no_inline - ) - { - vector ( id = 0, fill = "_START" ); // FIXME: "_lc_ub_stack" does not work - vector ( id = 1, fill = "_START" ); - } -# else -# ifdef __PIC_VECTORS - // vector table with ldrpc instructions from handler table - vector_table "vector_table" ( vector_size = 4, size = 8, run_addr = __VECTOR_TABLE_ROM_ADDR, - template = ".text.vector_ldrpc", - template_symbol = "_lc_vector_ldrpc", - vector_prefix = "_vector_ldrpc_", - fill = loop - ) - { - } - // subsequent vector table (data pool) with addresses of handlers - vector_table "handler_table" ( vector_size = 4, size = 8, run_addr = __VECTOR_TABLE_ROM_ADDR + 32, - template = ".text.handler_address", - template_symbol = "_lc_vector_handler", - vector_prefix = "_vector_", - fill = loop[-32], - no_inline - ) - { - vector ( id = 0, fill = "_START" ); - } -# else - // vector table with branch instructions to handlers - vector_table "vector_table" ( vector_size = 4, size = __NR_OF_VECTORS, run_addr = __VECTOR_TABLE_ROM_ADDR, - template = ".text.vector_branch", - template_symbol = "_lc_vector_handler", - vector_prefix = "_vector_", - fill = loop - ) - { - vector ( id = 0, fill = "_START" ); - } -# endif -# endif -#endif - section_layout - { -#if defined(__NO_AUTO_VECTORS) - "_lc_ub_vector_table" = __VECTOR_TABLE_ROM_ADDR; - "_lc_ue_vector_table" = __VECTOR_TABLE_ROM_ADDR + __VECTOR_TABLE_SIZE; -#endif -#ifdef __VECTOR_TABLE_RAM_SPACE - // reserve space to copy vector table from ROM to RAM - group ( ordered, run_addr = __VECTOR_TABLE_RAM_ADDR ) - reserved "vector_table_space" ( size = __VECTOR_TABLE_SIZE, attributes = rwx ); -#endif -#ifdef __VECTOR_TABLE_RAM_COPY - // provide copy address symbols for copy routine - "_lc_ub_vector_table_copy" := "_lc_ub_vector_table_space"; - "_lc_ue_vector_table_copy" := "_lc_ue_vector_table_space"; -#else - // prevent copy: copy address equals orig address - "_lc_ub_vector_table_copy" := "_lc_ub_vector_table"; - "_lc_ue_vector_table_copy" := "_lc_ue_vector_table"; -#endif - // define buffer for string input via Crossview Pro debugger - group ( align = 4 ) reserved "xvwbuffer" (size=__XVWBUF, attributes=rw ); - - // define labels for bounds begin and end as used in C library -#ifndef BOUNDS_GROUP_REDEFINED - group BOUNDS_GROUP_NAME (ordered, contiguous) - { - select BOUNDS_GROUP_SELECT; - } -#endif - "_lc_ub_bounds" := addressof(group:BOUNDS_GROUP_NAME); - "_lc_ue_bounds" := addressof(group:BOUNDS_GROUP_NAME) + sizeof(group:BOUNDS_GROUP_NAME); - -#ifdef __HEAPADDR - group ( ordered, run_addr=__HEAPADDR ) - { - select "heap"; - } -#endif -#ifdef __STACKADDR - group ( ordered, run_addr=__STACKADDR ) - { - select "stack"; - } -#endif -#if !defined(__CPU_ARMV7M__) && !defined(__CPU_ARMV6M__) - // symbol to set mode bits and interrupt disable bits - // in cstart module before calling the application (main) - "_APPLICATION_MODE_" = __APPLICATION_MODE; -#endif - } - } - - bus local_bus - { - mau = 8; - width = 32; - } -} diff --git a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK1/Settings/reset_go_main.scr b/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK1/Settings/reset_go_main.scr deleted file mode 100644 index 3e9c066..0000000 --- a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK1/Settings/reset_go_main.scr +++ /dev/null @@ -1,12 +0,0 @@ -// Hitex/Lue/11.02.2008 -// Executable Script file for HiTOP Debugger -// Reset application & Go main - -// Reset -RESET TARGET - - -// execute program till main -Go UNTIL main -wait - diff --git a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK2/cstart_thumb2.asm b/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK2/cstart_thumb2.asm deleted file mode 100644 index 12dc0d0..0000000 --- a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/HiTOP/STM3210X-XL_BANK2/cstart_thumb2.asm +++ /dev/null @@ -1,148 +0,0 @@ - - -;; NOTE: To allow the use of this file for both ARMv6M and ARMv7M, -;; we will only use 16-bit Thumb intructions. - - .extern _lc_ub_stack ; usr/sys mode stack pointer - .extern _lc_ue_stack ; symbol required by debugger - .extern _lc_ub_table ; ROM to RAM copy table - .extern main - .extern _Exit - .extern exit - .weak exit - .global __get_argcv - .weak __get_argcv - .extern __argcvbuf - .weak __argcvbuf - .extern __init_hardware - .extern __init_vector_table - .extern SystemInit - - .if @defined('__PROF_ENABLE__') - .extern __prof_init - .endif - .if @defined('__POSIX__') - .extern posix_main - .extern _posix_boot_stack_top - .endif - - .global _START - - .section .text.cstart - - .thumb -_START: - ;; anticipate possible ROM/RAM remapping - ;; by loading the 'real' program address - ldr r1,=_Next - bx r1 -_Next: - ;; initialize the stack pointer - ldr r1,=_lc_ub_stack ; TODO: make this part of the vector table - mov sp,r1 - - ;; call a user function which initializes hardware - ;; such as ROM/RAM re-mapping or MMU configuration - bl __init_hardware - - ;ldr r0, =SystemInit - ;bx r0 - bl SystemInit - - ;; copy initialized sections from ROM to RAM - ;; and clear uninitialized data sections in RAM - - ldr r3,=_lc_ub_table - movs r0,#0 -cploop: - ldr r4,[r3,#0] ; load type - ldr r5,[r3,#4] ; dst address - ldr r6,[r3,#8] ; src address - ldr r7,[r3,#12] ; size - - cmp r4,#1 - beq copy - cmp r4,#2 - beq clear - b done - -copy: - subs r7,r7,#1 - ldrb r1,[r6,r7] - strb r1,[r5,r7] - bne copy - - adds r3,r3,#16 - b cploop - -clear: - subs r7,r7,#1 - strb r0,[r5,r7] - bne clear - - adds r3,r3,#16 - b cploop - -done: - ;; initialize or copy the vector table - bl __init_vector_table - - .if @defined('__POSIX__') - - ;; posix stack buffer for system upbringing - ldr r0,=_posix_boot_stack_top - ldr r0, [r0] - mov sp,r0 - - .else - - ;; load r10 with end of USR/SYS stack, which is - ;; needed in case stack overflow checking is on - ;; NOTE: use 16-bit instructions only, for ARMv6M - ldr r0,=_lc_ue_stack - mov r10,r0 - - .endif - - .if @defined('__PROF_ENABLE__') - bl __prof_init - .endif - - .if @defined('__POSIX__') - ;; call posix_main with no arguments - bl posix_main - .else - ;; retrieve argc and argv (default argv[0]==NULL & argc==0) - bl __get_argcv - ldr r1,=__argcvbuf - ;; call main - bl main - .endif - - ;; call exit using the return value from main() - ;; Note. Calling exit will also run all functions - ;; that were supplied through atexit(). - bl exit - -__get_argcv: ; weak definition - movs r0,#0 - bx lr - - .ltorg - .endsec - - .calls '_START','__init_hardware' - .calls '_START','__init_vector_table' - .if @defined('__PROF_ENABLE__') - .calls '_START','__prof_init' - .endif - .if @defined('__POSIX__') - .calls '_START','posix_main' - .else - .calls '_START','__get_argcv' - .calls '_START','main' - .endif - .calls '_START','exit' - .calls '_START','',0 - - .end -- cgit v1.2.3