add debug needed file

This commit is contained in:
pikastech 2021-12-14 11:21:11 +08:00
parent 40ddb76a4c
commit 2ac3ca6914
6 changed files with 1754 additions and 0 deletions

View File

@ -0,0 +1,69 @@
#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc
; command above MUST be in first line (no comment above!)
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
#define FLASH_SIZE 0x00200000
#define SRAM_SIZE (1024*248)
#define STACK_0_SIZE (1024*4)
#define STACK_1_SIZE (1024*1)
#define HEAP_0_SIZE (1024*32)
#define HEAP_1_SIZE (1024*1)
#define RAMSIZE_VALID (SRAM_SIZE - \
STACK_1_SIZE - HEAP_1_SIZE - \
STACK_0_SIZE - HEAP_0_SIZE - 0x100)
LR_STAGE2_BOOT 0x10000000 0x100 {
ER_STAGE2_BOOT +0 0x100 {
compile_time_choice.o (+RO)
}
ER_FILL ImageLimit(ER_STAGE2_BOOT) FILL 0xDEADBEEF 0x100 - ImageLength(ER_STAGE2_BOOT) {
}
}
LR_IROM1 0x10000100 FLASH_SIZE - ImageLength(LR_STAGE2_BOOT) { ; load region size_region
ER_FLASH +0 0x00200000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
* (+RO-DATA)
startup_RP2040.o (+RO)
* (+RO-CODE)
* (+XO)
}
ER_RAM_VECTOR_TABLE 0x20000000 {
* (.ram_vector_table)
}
ARM_LIB_STACK +0 ALIGN 8 EMPTY STACK_0_SIZE {
}
ARM_LIB_STACK_ONE +0 ALIGN 8 EMPTY STACK_1_SIZE {
}
ARM_LIB_HEAP +0 ALIGN 8 EMPTY HEAP_0_SIZE {
}
ARM_LIB_HEAP_ONE +0 ALIGN 8 EMPTY HEAP_1_SIZE {
}
ER_MUTEX_ARRAY +0 {
* (.mutex_array.*)
* (.mutex_array)
}
;ER_PREINIT_ARRAY +0 {
; * (.preinit_array.*)
; * (.preinit_array)
;}
RW_IRAM +0 RAMSIZE_VALID { ; RW data
* (+RW +ZI)
}
}

View File

@ -0,0 +1,85 @@
#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc
; command above MUST be in first line (no comment above!)
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
#define FLASH_SIZE 0x00200000
#define SRAM_SIZE (1024*248)
#define STACK_0_SIZE (1024*4)
#define STACK_1_SIZE (1024*1)
#define HEAP_0_SIZE (1024*32)
#define HEAP_1_SIZE (1024*1)
#define RAMSIZE_VALID (SRAM_SIZE - \
STACK_1_SIZE - HEAP_1_SIZE - \
STACK_0_SIZE - HEAP_0_SIZE - 0x100)
;LR_STAGE2_BOOT 0x10000000 0x100 {
; ER_STAGE2_BOOT +0 0x100 {
; compile_time_choice.o (+RO)
; }
; ER_FILL ImageLimit(ER_STAGE2_BOOT) FILL 0xDEADBEEF 0x100 - ImageLength(ER_STAGE2_BOOT) {
; }
;}
LR_IROM1 0x20000000 SRAM_SIZE { ; load region size_region
ER_BINRAY_INFO +0 {
* (:gdef:Reset_Handler) //!< please always make sure that Reset_Handler is placed here.
* (.binary_info_header)
}
;ER_RAM_VECTOR_TABLE +0 ALIGN 256 {
; * (.ram_vector_table)
;}
ER_FLASH +0 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
* (+RO-DATA)
startup_RP2040.o (+RO)
}
ER_MUTEX_ARRAY +0 {
* (.mutex_array.*)
* (.mutex_array)
}
RW_IRAM_CODE +0 {
* (+RO-CODE)
* (+XO)
}
ARM_LIB_STACK +0 ALIGN 8 EMPTY STACK_0_SIZE {
}
ARM_LIB_STACK_ONE +0 ALIGN 8 EMPTY STACK_1_SIZE {
}
ARM_LIB_HEAP +0 ALIGN 8 EMPTY HEAP_0_SIZE {
}
ARM_LIB_HEAP_ONE +0 ALIGN 8 EMPTY HEAP_1_SIZE {
}
;ER_PREINIT_ARRAY +0 {
; * (.preinit_array.*)
; * (.preinit_array)
;}
RW_IRAM +0 { ; RW data
* (+RW +ZI)
}
RW_IRAM_UNINIT +0 UNINIT {
*(.uninitialized_data*)
}
}

View File

@ -0,0 +1,68 @@
#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc
; command above MUST be in first line (no comment above!)
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
#define FLASH_SIZE 0x00200000
#define SRAM_SIZE (1024*248)
#define STACK_0_SIZE (1024*4)
#define STACK_1_SIZE (1024*1)
#define HEAP_0_SIZE (1024*32)
#define HEAP_1_SIZE (1024*1)
#define RAMSIZE_VALID (SRAM_SIZE - \
STACK_1_SIZE - HEAP_1_SIZE - \
STACK_0_SIZE - HEAP_0_SIZE - 0x100)
LR_STAGE2_BOOT 0x10000000 0x100 {
ER_STAGE2_BOOT +0 0x100 {
compile_time_choice.o (+RO)
}
ER_FILL ImageLimit(ER_STAGE2_BOOT) FILL 0xDEADBEEF 0x100 - ImageLength(ER_STAGE2_BOOT) {
}
}
LR_IROM1 0x10000100 FLASH_SIZE - ImageLength(LR_STAGE2_BOOT) { ; load region size_region
ER_FLASH +0 0x00200000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
* (+RO-DATA)
startup_RP2040.o (+RO)
}
ER_RAM_VECTOR_TABLE 0x20000000 {
* (.ram_vector_table)
}
ARM_LIB_STACK +0 ALIGN 8 EMPTY STACK_0_SIZE {
}
ARM_LIB_STACK_ONE +0 ALIGN 8 EMPTY STACK_1_SIZE {
}
ARM_LIB_HEAP +0 ALIGN 8 EMPTY HEAP_0_SIZE {
}
ARM_LIB_HEAP_ONE +0 ALIGN 8 EMPTY HEAP_1_SIZE {
}
ER_MUTEX_ARRAY +0 {
* (.mutex_array.*)
* (.mutex_array)
}
;ER_PREINIT_ARRAY +0 {
; * (.preinit_array.*)
; * (.preinit_array)
;}
RW_IRAM +0 RAMSIZE_VALID { ; RW data
* (+RW +ZI)
* (+RO-CODE)
* (+XO)
}
}

View File

@ -0,0 +1,10 @@
FUNC void reset_pico(void)
{
exec("RESET");
exec("G, Reset_Handler");
}
DEFINE BUTTON "Reset Pico", "reset_pico()"
reset_pico();

View File

@ -0,0 +1,36 @@
FUNC void debug_from_ram(void)
{
//extern unsigned int Image$$ARM_LIB_STACK$$ZI$$Limit;
printf("Entry Point: %08x\r\n", Reset_Handler);
printf("Main Stack Pointer: %08x\r\n", Image$$ARM_LIB_STACK$$ZI$$Limit);
/*
typedef struct {
unsigned int ctrl;
unsigned int load;
unsigned int reason;
unsigned int scratch[8];
unsigned int tick;
} watchdog_hw_t;
#define watchdog_hw ((watchdog_hw_t *const)0x40058000)
*/
_WWORD(0x4005801C ,0xb007c0d3); //! scratch 4
_WWORD(0x40058020 ,-0xb007c0d3 ^ (Reset_Handler | 0x01)); //! scratch 5
_WWORD(0x40058024 ,Image$$ARM_LIB_STACK$$ZI$$Limit); //! scratch 6
_WWORD(0x40058028 ,Reset_Handler | 0x01); //! scratch 7
exec("RESET");
exec("G, Reset_Handler");
}
DEFINE BUTTON "Reset Pico", "debug_from_ram()"
debug_from_ram();

File diff suppressed because it is too large Load Diff