Skip to content

Instantly share code, notes, and snippets.

@shima-529
Created April 9, 2021 13:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shima-529/52738f4ca594e3a46d13419d0f957220 to your computer and use it in GitHub Desktop.
Save shima-529/52738f4ca594e3a46d13419d0f957220 to your computer and use it in GitHub Desktop.
#include <stddef.h>
extern int _estack;
void __libc_init_array(void);
extern int _sdata, _edata, _sidata;
extern int _sbss, _ebss;
int main(void);
void Reset_Handler(void) {
// Clear .bss section
int *p = &_sbss;
while( p != &_ebss ) {
*p = 0;
p++;
}
// Copy .data section
const int *src = &_sidata;
int *dest = &_sdata;
while( dest != &_edata ) {
*dest = *src;
src++;
dest++;
}
__libc_init_array();
main();
while(1);
}
__attribute__((weak))
void NMI_Handler(void) {
while(1) {
}
}
__attribute__((weak))
void HardFault_Handler(void) {
while(1){}
}
__attribute__((weak))
void SVC_Handler(void) {}
__attribute__((weak))
void PendSV_Handler(void) {}
__attribute__((weak))
void SysTick_Handler(void) {}
__attribute__((weak))
void Handler0(void) {}
__attribute__((weak))
void Handler1(void) {}
__attribute__((weak))
void Handler2(void) {}
__attribute__((weak))
void Handler3(void) {}
__attribute__((weak))
void Handler4(void) {}
__attribute__((weak))
void Handler5(void) {}
__attribute__((weak))
void Handler6(void) {}
__attribute__((weak))
void Handler7(void) {}
__attribute__((weak))
void Handler8(void) {}
__attribute__((weak))
void Handler9(void) {}
__attribute__((weak))
void Handler10(void) {}
__attribute__((weak))
void Handler11(void) {}
__attribute__((weak))
void Handler12(void) {}
__attribute__((weak))
void Handler13(void) {}
__attribute__((weak))
void Handler14(void) {}
__attribute__((weak))
void Handler15(void) {}
__attribute__((weak))
void Handler16(void) {}
__attribute__((weak))
void Handler17(void) {}
__attribute__((weak))
void Handler18(void) {}
__attribute__((weak))
void Handler19(void) {}
__attribute__((weak))
void Handler20(void) {}
__attribute__((weak))
void Handler21(void) {}
__attribute__((weak))
void Handler22(void) {}
__attribute__((weak))
void Handler23(void) {}
__attribute__((weak))
void Handler24(void) {}
__attribute__((weak))
void Handler25(void) {}
__attribute__((weak))
void Handler26(void) {}
__attribute__((weak))
void Handler27(void) {}
__attribute__((weak))
void Handler28(void) {}
__attribute__((weak))
void Handler29(void) {}
__attribute__((weak))
void Handler30(void) {}
__attribute__((weak))
void Handler31(void) {}
__attribute__((section(".isr_vector")))
void (*isr_vector[])(void) = {
(void *)&_estack,
Reset_Handler,
NMI_Handler,
HardFault_Handler,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
SVC_Handler,
NULL,
NULL,
PendSV_Handler,
SysTick_Handler,
Handler0,
Handler1,
Handler2,
Handler3,
Handler4,
Handler5,
Handler6,
Handler7,
Handler8,
Handler9,
Handler10,
Handler11,
Handler12,
Handler13,
Handler14,
Handler15,
Handler16,
Handler17,
Handler18,
Handler19,
Handler20,
Handler21,
Handler22,
Handler23,
Handler24,
Handler25,
Handler26,
Handler27,
Handler28,
Handler29,
Handler30,
Handler31,
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment