uboot board.c运行到memset中止
用的是uboot2010.6版本 运行到start_armboot里的memset就不运行了 我在arch/arm/cpu/arm920t/u-boot.lds加入(否则调不到lowlevel_init.s)
.text :
{
arch/arm/cpu/arm920t/start.o(.text)
board/samsung/smdk2410/lowlevel_init.o (.text)
arch/arm/lib/board.o (.text)
board/samsung/smdk2410/smdk2410.o(.text)
arch/arm/cpu/arm920t/s3c24x0/timer.o (.text)
...
用nm看了编译好的uboot可执行文件 memset里面有调用的位置也对应该是从flash到ram过程中出错了 这个问题有时出现有时就没有
代码
void start_armboot (void)
{
init_fnc_t **init_fnc_ptr;
char *s;
#if defined(CONFIG_VFD) || defined(CONFIG_LCD)
unsigned long addr;
#endif
/* Pointer is writable since we allocated a register for it */
gd = (gd_t*)(_armboot_start - CONFIG_SYS_MALLOC_LEN - sizeof(gd_t));
/* compiler optimization barrier needed for GCC >= 3.4 */
__asm__ __volatile__("": : :"memory");
memset ((void*)gd, 0, sizeof (gd_t));
//while(1);
gd->bd = (bd_t*)((char*)gd - sizeof(bd_t));
memset (gd->bd, 0, sizeof (bd_t));