--- /dev/null
+/*****************************************************************
+ * Initialize data: clear .bss
+ * can be overwriten by user function with the same name
+ *****************************************************************/
+ .section .init4, "ax", @progbits
+
+ .weak __do_clear_bss
+ .func __do_clear_bss
+
+__do_clear_bss:
+ mov #__bss_size, r15
+ tst r15
+ jz .L__clear_bss_end
+.L__clear_bss_loop:
+ dec r15
+ clr.b __bss_start(r15) ; RAM is always in lower 64K, so 430 instruction
+ ; is acceptable here for 430X core too.
+ jne .L__clear_bss_loop
+.L__clear_bss_end:
+
+ .endfunc