Hi,
My application is running from 0x20000 started by a 2nd stage bootloader located at 0x00000.
When my application is started by the bootloader, the function call main_TcpNet throws a PAbt exception after a while. Sometimes the exception occurs nearly immediately, sometimes the application runs for several minutes. I removed everything else from my application to track the cause of the PAbt. Now the init task only starts the TCP task and the tick-timer task before the init terminates. I don't have to establish a connection or do anything to cause the PAbt exception.
In the following cases the application runs without throwing an exception:
1) The application without the tcp-task calling main_TcpNet runs without any problems.
2) When no network cable is connected the application runs without any problems.
3) When I start the application directly without running through the bootloader everything works fine.
I also have reduced the bootloader to the one only command to call the application at 0x20000.
My reduced bootloader.c:
#define APPL_RUN_ADDR 0x00020000 typedef void (*FP)(void); void run_appl() { FP fp; VICIntEnClr = 0xFFFFFFFF; // Disable all interrupt fp = (FP)APPL_RUN_ADDR; (*fp)(); } int main(void) { run_appl(); }
This exception I can observe at my own Hardware as well as with the MBC2300 Evalboard.
I'm using the following environment:
IDE-Version: µVision V4.71.2.0 Copyright (C) 2013 ARM Ltd and ARM Germany GmbH. All rights reserved. Tool Version Numbers: Toolchain: MDK-ARM Professional Version: 4.71.0.0 Toolchain Path: C:\Keil\ARM\ARMCC\bin\ C Compiler: Armcc.Exe V5.03.0.69 Assembler: Armasm.Exe V5.03.0.69 Linker/Locator: ArmLink.Exe V5.03.0.69 Librarian: ArmAr.Exe V5.03.0.69 Hex Converter: FromElf.Exe V5.03.0.69 CPU DLL: SARM.DLL V4.71.0.0 Dialog DLL: DARMP.DLL V1.51 Target DLL: ULP2ARM.DLL V2.20.2.0 Dialog DLL: TARMP.DLL V1.51
Can anyone give me a clue, where I have missed something, or what can the cause of that exception?
I've run out ideas right now.
Thanks in advance Hubert