Bläddra i källkod

Fix alignment error on ARM for modules

Fix alignment fault on ARM when running modules.  With out an explicit
linker file gcc4.2.1 will half word align __bss_start's value.  The word
dereference will crash hello_world.

signed-off-by Richard Woodruff <r-woodruff2@ti.com>
Woodruff, Richard 17 år sedan
förälder
incheckning
118978c8eb
2 ändrade filer med 6 tillägg och 2 borttagningar
  1. 4 0
      examples/Makefile
  2. 2 2
      examples/stubs.c

+ 4 - 0
examples/Makefile

@@ -30,8 +30,12 @@ LOAD_ADDR = 0x40000
 endif
 
 ifeq ($(ARCH),arm)
+ifeq ($(BOARD),omap2420h4)
+LOAD_ADDR = 0x80300000
+else
 LOAD_ADDR = 0xc100000
 endif
+endif
 
 ifeq ($(ARCH),mips)
 LOAD_ADDR = 0x80200000 -T mips.lds

+ 2 - 2
examples/stubs.c

@@ -190,10 +190,10 @@ extern unsigned long __bss_start, _end;
 
 void app_startup(char **argv)
 {
-	unsigned long * cp = &__bss_start;
+	unsigned char * cp = (unsigned char *) &__bss_start;
 
 	/* Zero out BSS */
-	while (cp < &_end) {
+	while (cp < (unsigned char *)&_end) {
 		*cp++ = 0;
 	}