aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wirish/start.S26
-rw-r--r--wirish/start_c.c57
2 files changed, 42 insertions, 41 deletions
diff --git a/wirish/start.S b/wirish/start.S
index cb87d62..2488895 100644
--- a/wirish/start.S
+++ b/wirish/start.S
@@ -40,18 +40,18 @@
* they apply.
*/
- .text
- .code 16
- .thumb_func
+ .text
+ .code 16
+ .thumb_func
- .globl _start
- .type _start, %function
+ .globl _start
+ .type _start, %function
_start:
- .fnstart
- ldr r1,=__msp_init
- mov sp,r1
- ldr r1,=start_c
- bx r1
- .pool
- .cantunwind
- .fnend
+ .fnstart
+ ldr r1,=__msp_init
+ mov sp,r1
+ ldr r1,=start_c
+ bx r1
+ .pool
+ .cantunwind
+ .fnend
diff --git a/wirish/start_c.c b/wirish/start_c.c
index a80334d..ae42087 100644
--- a/wirish/start_c.c
+++ b/wirish/start_c.c
@@ -44,49 +44,50 @@
#include <stddef.h>
-extern void __libc_init_array (void);
+extern void __libc_init_array(void);
-extern int main (int, char **, char **);
+extern int main(int, char**, char**);
-extern void exit (int) __attribute__ ((noreturn, weak));
+extern void exit(int) __attribute__((noreturn, weak));
extern char _data, _edata;
extern char _bss, _ebss;
struct rom_img_cfg {
- long long *img_start;
+ long long *img_start;
};
extern char _lm_rom_img_cfgp;
void __attribute__((noreturn)) start_c(void) {
- struct rom_img_cfg *img_cfg = (struct rom_img_cfg*)&_lm_rom_img_cfgp;
- long long *src;
- long long *dst;
- int exit_code;
+ struct rom_img_cfg *img_cfg = (struct rom_img_cfg*)&_lm_rom_img_cfgp;
+ long long *src;
+ long long *dst;
+ int exit_code;
- /* Initialize .data, if necessary. */
- src = img_cfg->img_start;
- dst = (long long*)&_data;
- if (src != dst) {
- while (dst < (long long*)&_edata) {
- *dst++ = *src++;
+ /* Initialize .data, if necessary. */
+ src = img_cfg->img_start;
+ dst = (long long*)&_data;
+ if (src != dst) {
+ while (dst < (long long*)&_edata) {
+ *dst++ = *src++;
+ }
}
- }
- /* Zero .bss. */
- dst = (long long*)&_bss;
- while (dst < (long long*)&_ebss) {
- *dst++ = 0;
- }
+ /* Zero .bss. */
+ dst = (long long*)&_bss;
+ while (dst < (long long*)&_ebss) {
+ *dst++ = 0;
+ }
- /* Run initializers. */
- __libc_init_array ();
+ /* Run initializers. */
+ __libc_init_array();
- exit_code = main (0, NULL, NULL);
- if (exit)
- exit (exit_code);
- /* If exit is NULL, make sure we don't return. */
- for (;;)
- continue;
+ exit_code = main(0, NULL, NULL);
+ if (exit) {
+ exit(exit_code);
+ }
+ /* If exit is NULL, make sure we don't return. */
+ for (;;)
+ continue;
}