hi! i tried buliding target in keil in assembly language and it gave a cryptic error.. can anyone help me figure out how to build target or run a assembly language written code in keil... i can well do it in C but unable to figure it out using assembly.... Thanks.
resp.sir i am learning the arm coding techniques and building of target using "keil development tool." so far i am in position to write code and generate the .hex file but have no idea what are the steps taken to burn the core for the functionality.please help me and also tell me if it needs some software or hardware for the process.
resp.sir i am learning the arc coding techniques and building of target using "keil development tool." so far i an in position to write code and generate the .hex file but have no idea what are the steps taken to burn the core for the functionality.please help me and also tell me if it needs some software or hardware needed for the process.
Check the field R/O Base in the Options for Target->Linker Tab. This specifies the value for ro-base that is passed to the linker. This should have been automatically filled in with the information from the Options for Target->Target tab but may have been subsequently changed. If the R/O Base field is blank or contained a non-word aligned value, you will get this particular error.
hi! 'target tab' ,i think , is the one present in "option for target 'target1'" window which will come from "target1" present in "project workspace" window. if so far i am correct then the "target " tab in "option for target 'target1'" window has "read/only memory areas "on chip " and "off chip" fields and in former ROM1 , ROM2,ROM3 spaces are blank and in latter IROM1 has default 0X0 as starting and 0x2000 for size fields. please help me what should i do to over come the error which says: INVALID VALUR FOR --ro-base and if my location of "target tab" is not correct then please tell me which "targer tab" you are refering to? thankyou
resp. sir, in keil mVISION3 ,i am using realview tool and for new project i opted device LPC2101 of phlips.and added to it the 'startup.s' file then the file with my assemble code i added,which was a ".s" file.containing TTL ch4ex1 - move16 AREA Program,CODE,READONLY Main LDRB R1,Value STR R1,Result SWI &11 Value DCW &C123 ALIGN Result DCW 0 END i then builded the target and found the following error: undefined symbol _main(referred frm startup.o) indefinrd symbol _use_two_region_memory (referred frm startup.o) whics is same when i posted my first query. can you please help me getting the taget bulid and also tell me if i am reght that we can use "keil microvision3" for assembly language coding of embeded systems.
resp. sir , i dont know hoe come this C51 post came in. its not me who posted it in here,the author is some other guy. n my self is divyakumar. i am sorry but i didnt post this c51 and don't know how it came in this thread.
Hi Divyakumar, You appear to be using the RealView ARM tools from the assembler syntax in the snippet that you posted. __main is the entry point to the C library which needs to be called if you have C code in your project. It will eventually call main(). Your fix for this is not valid so. Check to see if you have the "Don't search Standard Libraries" option in the linker tab selected as these are present in these libraries. ro-base is the start address of the read-only section which obviously needs to be specified in some way to the linker. You are using the free downloaded version so this is being obtained from the information in the Target tab. Check that the information in this tab is correct.
"how to write Assembly code in C language using KEIL software(C51)." Why are you posting a C51 example when this thread is (now) clearly about ARM7?? You need to read the C51 Manual - it details the specific features and extensions of C51 that give you access to things like the 8051's ports and pins, bit-addressable objects, different memory spaces, etc, etc,... Don't even think about trying to do inline assembler before you thoroughly understand what C51 provides directly in 'C'!!
how to write Assembly code in C language using KEIL software(C51) . example: void main(void) { int i; i = 0; while(1) { i++; setb P1.0; // assembly instruction delay(); clr P1.0; // assembly instruction } } please mail a copy to my e mail id vinay_attavane@rediffmail.com
resp. sir, the problem with "main" is probably solved as it gives no error regarding "main" when i changed "main" to "_main" but then with the same assembly code it gave another error which i tried fixing but was unable. the same code with 'main' replaced by '_main' gave the output: first.afx:error:L6913E:invalid value for --ro-base. but i am not using ro in my code. what may be the mistake sir? thanks
There's 3 links at http://www.gnuarm.com/resources.html
Note that Keil has 3 versions of ARM tools: Realview, CARM, and GNU. Which one are you using? Realview is the current Keil product; CARM was the original Keil product; GNU is not a Keil product at all - see http://www.keil.com/forum/docs/thread7842.asp For assembler examples, you need to be sure that you have the right source code to go with your particular tools! For GNU support, you could try http://www.gnuarm.com/ or just put "GNU ARM Assembler" into your favourite internet search engine...
"thought it would help hasten the process" It might save you the odd second or two of typing (although "wannna" is no quicker than "want to"), but it means that every one else has to struggle to decipher your meaning! " i used STARTUP.S: Startup file for Philips LPC2000 ... contained a very simple programme:" No, it is not a program! This is the code that runs before a 'C' program can start - it sets up all the stuff required for the 'C' program. It is not a program in itself - that's why you are getting the errors: "undefined symbol _main (referred frm startup.o)" As you know, every 'C' program starts with a function called main(). As it's a function, something has to call it - in the case of an embedded system, that "something" is the startup code! The startup code is meaningless on its own - its whole raison d'etre is as a preamble to the main 'C' code! "tring to use KEIL microversion3 arm development tool kit ....which i dowmloded" Note that's "microvision" - not "microversion" That download comes with a whole folder full of examples - take a look for an assembler sample.
"...thought it would help hasten the process.." Hasten your process of typing perhaps, but lengthens our process of reading and worse, demotivates us from replying. "undefined symbol _main(referred frm startup.o)" startup.s is the runtime startup code for a typical C program whose entry point is main(). I see you've got a "Main", but I think you'd agree that "Main" does not quite match "_main". "indefinrd symbol _use_two_region_memory (referred frm startup.o)" Determine what "_use_two_region_memory" and duplicate its functionality (and name) in your code or edit startup.s to eliminate the reference entirely.
i am really sorry it ...thought it would help hasten the process.. i apologize...please help me fixing the problem.
View all questions in Keil forum