We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
My background is primarily Windows development and I know very little about embedded development so I hope someone can explain what is causing my problem.
I am using the Keil compiler in uVision3 and am trying to simulate an NXP LPC2468.
My program is very basic :P ...
int main() { return 0; }
But when the simulator starts I receive this in the output window:
*** error 65: access violation at 0xA0033000 : no 'read' permission
This happens in LPC2400.s at the LDR instruction on line 1308...
LDR R4, =NORMAL_CMD ; Write NORMAL Command STR R4, [R0, #EMC_DYN_CTRL_OFS]
I could map this region using the instruction's here http://www.keil.com/support/docs/814.htm
but, shouldn't the code work anyway straight out of the box?
the outcome of your code is compiler specific; some compiler will generate code that behaves like Christoph said; others will reset your controller.
try this:
void main(void) { while (1) ; }
Your code is closer to what I will need Tamir so have tried your suggestions (since that's more like the main I need) but it's still stops in the assembler code before getting to the main function.
I thought I could simply select a chip and be on my way, have I missed out a crucial step somewhere?
Do you have the latest version of the development tools, since the processor is quite new - maybe your version can't simulate all peripherials.
Yes, I think I am fully up to date.
uVision3 - v3.63 Toolchain - Realview MDK-ARM V3.24
Compiler and linker version (armcc.exe etc) is V3.1.0.939
My program now works as intended. Yay!
In the configuration settings tree I expanded "External Memory Controller Setup (EMC)" and unchecked "Dynamic Memory Interface Setup"
Thanks for your help folks, I can now start fleshing out my main function. :)