From: Drew K. <dr...@dr...> - 2012-07-15 04:17:46
|
What is the best way to place strings in absolute code memory? In my programs, I put a header section that contains copyright info and other stuff that our in-house programming software uses to determine which hardware it is programming. In assembly it looks like this... INFO CODE 0x0100 dt "Copyright © 2012My Company, Inc.", 0x0D, 0x0A dt "SuperX Module v.1.0.0 Built 07/14/2012 12:00:00", 0x0D,0x0A END Apparently, something like this is not supported: static __code unsigned char __at(0x0100) info[] = "Copyright blah blah\n" "SuperX Module....."; (I imagine that even if the above was supported, it would use the PIC's "packed" string storage... DA instead of DT... which I can't use, anyway.) So we have to go to assembly. By trial and error, I have concluded that __asm / __endasm and __asm__ need to be inside of a method, i.e. cannot be global. So I created a dummy method that looks like this (in a file by itself)... void info(void) { __asm org 0x0100 dt "Copyright © 2012My Company, Inc.", 0x0D, 0x0A dt "SuperX Module v.1.0.0 Built 07/14/2012 12:00:00", 0x0D,0x0A __endasm; } However, the ORG statement causes a linker error: 'multiple sections using address 0x100'. If I comment out the ORG, the code is not absolute and I cannot figure out any compiler options to place it absolutely. If I add an org statement within the first method in my main file, things seem to link ok (seems less than ideal). Is this really the best way to do this? Thanks -drew |
From: Kustaa N. <Kus...@pl...> - 2012-07-15 19:33:07
|
Hi, I urgently need to reinstall an old version of SDCC, namely: SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.8.9 # (Feb 10 2009) (Mac OS X i386) I have some old code that will not compile with latest without modifications and when modified for the new compiler does not work, so I need to get back to this old version to get a baseline for debugging. Where can I get it and how to install it? A binary install is preferable as this is a brand new Mac OS X Lion and I would not like to see what it takes to compile it from source with this edition of Mac OS X, though last time it compiled ok, but that was with older gcc and who knows what.... br Kusti |
From: Maarten B. <sou...@ds...> - 2012-07-15 22:05:43
|
Hello Kustaa, We do not keep all old snapshot builds. If anyone has it you may get lucky, but if you depend on it maybe you should have kept it yourself. OTOH, 2.8.9 is close to 2.9.0 so maybe you could try that. The only real alternative when it has to be this exact version is to compile from source. Sorry, but still good luck, Maarten > > Hi, > > I urgently need to reinstall an old version of SDCC, namely: > > SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 > 2.8.9 # (Feb 10 2009) (Mac OS X i386) > > I have some old code that will not compile with latest without > modifications > and when modified for the new compiler does not work, so I need to get back > to this old version to get a baseline for debugging. > > > Where can I get it and how to install it? > > A binary install is preferable as this is a brand new Mac OS X Lion > and I would not like to see what it takes to compile it from source > with this edition of Mac OS X, though last time it compiled ok, but > that was with older gcc and who knows what.... > > br Kusti |
From: roelof 't H. <ro...@it...> - 2012-07-15 23:34:52
|
On Mon, 2012-07-16 at 00:05 +0200, Maarten Brock wrote: > Hello Kustaa, > > We do not keep all old snapshot builds. If anyone has it > you may get lucky, but if you depend on it maybe you > should have kept it yourself. OTOH, 2.8.9 is close to > 2.9.0 so maybe you could try that. The only real > alternative when it has to be this exact version is to > compile from source. I have this source archive on my server at the office : 3796469 21 Nov 2010 sdcc-src-20090817-5492.tar.bz2 You will need to compile it yourself, it is not a ready to install binary package. roelof |
From: Kustaa N. <Kus...@pl...> - 2012-07-16 06:32:16
|
Never mind, thank you, got the compiler up and running from the old hard disk after I got my ducks in order, sorry about the noise. br Kusti |
From: Kustaa N. <Kus...@pl...> - 2012-07-16 03:27:39
|
On 7/16/12 01:05, "Maarten Brock" <sou...@ds...> wrote: >Hello Kustaa, > >We do not keep all old snapshot builds. If anyone has it >you may get lucky, but if you depend on it maybe you >should have kept it yourself. OTOH, 2.8.9 is close to >2.9.0 so maybe you could try that. The only real >alternative when it has to be this exact version is to >compile from source. > >Sorry, but still good luck, >Maarten Hello Maarten, Well, I actually have a copy, but I'm not feeling comfortable with it, because it does not work 'out of the box' like it used to. What happened is that my computer crashed and I emigrated to a new one. I had triple back up so I should have been good, only thing is that stuff in the 'Unix' directories like /usr were not backed up. I can access the original disk so that is not beyond recovery I just thought I asked first here. When I tried to compile this code that used to compile cleanly I got a message complaining about missing 'pic16devices.txt'. That maybe related to the the thing that the compiler copy that I have is not in the standard place but in my Mac's home directory. Maybe I should tweak it somehow... So I gave a the path to that with '-I' and now it compiles but complains about 'gpasm: command not found' so my setup is not working like it used to before the crash and I'm pretty sure I did not install gpasm separate originally so I feel like I'm not on the right path if I start to patch this installation ad hoc. Hmm ... last time SDCC built beautifully so maybe next I'll give it a go to compile from the source. If that fails I try to check original disk if I can recover it from there. Thank you for support and help anyway. br Kusti |
From: Raphael N. <rn...@we...> - 2012-07-16 05:01:05
|
> So I gave a the path to that with '-I' and now it compiles but > complains about 'gpasm: command not found' so my setup is not > working like it used to before the crash and I'm pretty sure > I did not install gpasm separate originally so I feel like > I'm not on the right path if I start to patch this installation > ad hoc. You must have installed gputils at one point -- either via some package management or manually from source, as sdcc never has provided assembler/linker/librarian for PIC14/PIC16 targets. So far, there does not seem to be too much wrong with your current setup. Raphael |