diff packages/hal/arm/arch/current/ChangeLog @ 2773:4db2c98d89f8

* src/vectors.S (start): The loop to initialize BSS was using a BLS to terminate. This caused an extra zero to be stored beyond the end of __bss_end. Usually this is benign, but when __bss_end is at the very top of RAM, and the hardware generates an exception for illegal accesses, this can crash the program before it even starts. The fix is to use a BLT instructions which will terminate the loop 1 word earlier.
author nickg
date Mon, 09 Feb 2009 15:34:49 +0000
parents 644d2e82078f
children 0f319c78e393
line wrap: on
line diff
--- a/packages/hal/arm/arch/current/ChangeLog
+++ b/packages/hal/arm/arch/current/ChangeLog
@@ -1,3 +1,13 @@
+2009-02-09  Nick Garnett  <nickg@ecoscentric.com>
+
+	* src/vectors.S (start): The loop to initialize BSS was using a
+	BLS to terminate. This caused an extra zero to be stored beyond
+	the end of __bss_end. Usually this is benign, but when __bss_end
+	is at the very top of RAM, and the hardware generates an exception
+	for illegal accesses, this can crash the program before it even
+	starts. The fix is to use a BLT instructions which will terminate
+	the loop 1 word earlier.
+
 2009-02-02  Bart Veer  <bartv@ecoscentric.com>
 
 	* cdl/hal_arm.cdl: add new architectural CFLAGS and LDFLAGS