hi, i just wanted to start programming arm, i got an LPC1768 board ! i wrote my first program !
here is code
#include "LPC17xx.h" int main(void) { int a; LPC_GPIO1->FIODIR=1; while(1) { LPC_GPIO1->FIOSET=1; for(a=0;a<7200000;a++); LPC_GPIO1->FIOCLR=1; for(a=0;a<7200000;a++); } }
it says :
Rebuild target 'Target 1' assembling startup_LPC17xx.s... compiling main.c... main.c(15): warning: #1-D: last line of file ends without a newline } main.c: 1 warning, 0 errors linking... .\Blinky.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_lpc17xx.o). Not enough information to list image symbols. Finished: 1 information, 0 warning and 1 error messages. ".\Blinky.axf" - 1 Error(s), 1 Warning(s). Target not created
also if i create it , im not sure how to make it a bin file, my board manual says i must covert it to bin with -H!
Have a look at Keils tutorials how to create new project.
You are missing one or more libraries that are needed when linking the project.
thanks, i will google for them and take a look, i will post back the results :P
thanks, i added some files into it and now it works, but it made like 5 blinky files one of them has axf format, how can creat binary from them?!
also i want to change starting adress too 0x2000 let me google that!
http://www.keil.com/support/docs/189.htm thers no files named .a51 in my keil directory :(
Do you need a bin file?
The Keil tools doesn't.
But your installation includes a program "fromelf" that can convert the axf file to a bin file.
So when you Google - maybe not Google for how to play around with 8051 projects and focus more on how to play around with ARM projects. The tools are named MDKARM for a reason ;)
thanks, the manual says (for my barod) i need to covert it to bin and paste it to baord like usb flash ! it says i can use jtag too but it costs:D and i don't have one
only thing left is the starting adress, do you know how i can do that!?
How to change the start address?
Quick question: Have you spent any time checking the property settings for your project? There are lots of interesting settings there that you do want to know about. And it's way quicker/easier to start by checking what settings are available than to wonder what the tools can do.
i did, im not sure what some of them are
my own guess was to do this:
options for target 1
target tab>> Read/Only memory areas >> on-chip >> IROM1 changing start value from 0x0 too 0x2000 but im worried i might damage something !
and as i don't know if my code has problem or compiling so if it doens't work i don't know what to do!
sorry:( im a total noob in arm programming ! but everybody starts somewhere :)
i read somewhere i was doing it right, tanks anyway,
my program does nothing, let me see why it doens't .....
The LPC1768 procesor does not boot from address 0x2000.
So it is only meaningful to store your program to that address if you from address 0x0000 have a boot loader that will check for any code at 0x2000 and jump there.
Do you have such a boot loader in your target board?
Does that boot loader support emitting any information - maybe some trace output on a serial port?
i don't know
here's my baord eshop.eca.ir/.../876-lpc1768-cortex-m3-header-board.html
the instruction told me to do so !