On 05/20/2011 10:27 AM, linnix wrote:
> On May 20, 8:15 am, Tim Wescott<t...@seemywebsite.com> wrote:
>> On 05/20/2011 04:17 AM, alacky3 wrote:
>>
>>> Hello.
>>
>>> I am implementing a program to be updated via GPRS channel. The total size
>>> of the firmware reaches about 256 kB which makes it somewhat costly
>>> upgrades. I considered the idea of dividing the firmware into independent
>>> parts that can be updated independently and upgrade only the changed parts,
>>> but I don't know how to begin. Does anyone has had a similar problem? How
>>> do you have solved it?
>>
>> Under windows you'd do this with dll's. Even though I use Linux, I
>> can't remember the name of the same concept, but the file suffix is .so.
>
> It's either Dynamic Linking Loader (dll) or Dynamic Loading Linker
> (dll) for Shared Objects (so). However, there are quite a bit of run-
> time overheads using them. For firmware, it might be easier to just
> separate the library into "ROM" code and calls, traps or soft intr.
> into it.
Yes, anything that's dynamically linking is going to be slow -- I was
trying to get some concepts and search terms to the guy as much as make
specific recommendations.
Certainly if size and speed were a concern, I'd want to do this with
something more statically linked (although I can't see how to avoid jump
tables or the equivalent). I can think of several ways to do this right
off the bat, but in the end you're going to have to sacrifice some
combination of speed, versatility, or design time.
--
Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" was written for you.
See details at
http://www.wescottdesign.com/actfes/actfes.html