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.
Hi, I've to modify a code previously written in Tasking compiler and at many places I find code like _rom USIGN08 TempTable[CAL_TEMPERATURES] _at(0xf35c)= { 0x0F,0x28,0x51,0x7A,0x8F }; Here the TempTable array is to be located at code address 0xf35c and also to be initialized. As per Keil compiler book, variables can be located at absolute location using _at_ but can not be initialized. Is there a way to do this? Thanks, Rajesh
The original code was not written by me and as the only person in team to worked on 8051(4-5 years ago), I volunteered to make some quick enhancement and got PK51 assuming Keil compiler can do anything. Did not know that code was done using Tasking compiler. Yes, the tables shouldn't have been located at fixed address,not sure why it was done like that. Now I'll try to make it absolute address independent or go through the hassle of locating them using liker. I was just looking for some quick solution. Also noticed that Keil IDE doesn't generate make file(Tasking compiler does) :( After using GNU Tools I'm used to Makefiles now.
"After using GNU Tools I'm used to Makefiles now." ALL of the Keil tools can be called from the command line; therefore, you can use a makefile instead of the uVision build if that's what you prefer. You could invoke it from the Tools menu, if you want...