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.
Our project consists of firmware and application, which are stored in different memory--rom & otp. So the firmware part shall not be changed while application can be developed further on. Now for firmware the space for library functions are fixed but we don't know what library is needed for application development. I found all the library functions are linked together under ?C?LIB_CODE. So the question is, how can I link/locate the library into two separate locations, one sits within 0x0000-0x0800 while the other is located above 0x0800? Any help will be appreciated! Otherwise I have to leave some extra space for library in firmware memory which means waste of space.. Regards, Xinyi
rom & otp is the same, a ROM can only be programmed One Time. Erik
Well, I mean Rom and some kind of UV erasable memory(it's called OTP in my task spec, so...). So the firmware will be written in ROM and stay forever, but application part may change as like. Any idea how to solve the problem?
Any idea how to solve the problem? The solution will be in the linker manual. I am think that you will need to convert the libaray to some .obj's (easy) and link them directly to be able to locate. Erik
"UV erasable memory(it's called OTP in my task spec," Your task spec is using the term incorrectly! OPT = One-Time Programmable; ie cannot be erased. This usually means that the part contains a UV-erasable chip, but is packaged in an opaque material - so it can't be erased. They do this because "standard" opaque plastic packages are far cheaper than the ceramic windowed types needed to let the UV light in and, thereby, allow the chip to be erased.
The solution will be in the linker manual. I am think that you will need to convert the libaray to some .obj's (easy) and link them directly to be able to locate. I've looked into the linker manual, but nothing obviously useful. They didn't mention how to convert the library to .obj or how to link/locate the library models to certain address. I tried to write sth like code(?C?IMUL) but doesn't work. Am I doomed...?
I've looked into the linker manual, but nothing obviously useful. They didn't mention how to convert the library to .obj You can't BUT you can compile the modules and NOT put them in a libray. or how to link/locate the library models to certain address. as I said locate .obj modules Am I doomed...? yes, if you are using a libarry that is not your own Erik
http://www.keil.com/appnotes/docs/apnt_180.asp