startup_gd32.s 846 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * File : startup_gd32f10x_hd.s
  3. * This file is part of RT-Thread RTOS
  4. * COPYRIGHT (C) 2006 - 2021, RT-Thread Development Team
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-01-02 iysheng first implementation
  9. */
  10. .syntax unified
  11. .cpu cortex-m3
  12. .fpu softvfp
  13. .thumb
  14. .global Reset_Handler
  15. .section .text.Reset_Handler
  16. .type Reset_Handler, STT_FUNC
  17. Reset_Handler:
  18. ldr r1, =_sidata
  19. ldr r2, =_sdata
  20. ldr r3, =_edata
  21. subs r3, r2
  22. ble fill_bss_start
  23. loop_copy_data:
  24. subs r3, #4
  25. ldr r0, [r1,r3]
  26. str r0, [r2,r3]
  27. bgt loop_copy_data
  28. fill_bss_start:
  29. ldr r1, =__bss_start
  30. ldr r2, =__bss_end
  31. movs r0, 0
  32. subs r2, r1
  33. ble startup_enter
  34. loop_fill_bss:
  35. subs r2, #4
  36. str r0, [r1, r2]
  37. bgt loop_fill_bss
  38. startup_enter:
  39. bl SystemInit
  40. bl entry