From: Raphael N. <RN...@we...> - 2006-04-24 20:26:54
|
Ok, I just fixed this issue in SDCC r4119. Config words now work (nearly) as previously: You define a variable at a config word location and initialize it with the desired value, e.g. using unsigned int __at(0x2007) foo = 0x0815; Different from before the modifications, config words need not be defined in the main()-file but may be defined anywhere. Behaviour on duplicate definition in multiple source files is "undefined" ;-). Sorry for the confusion, Raphael > Hi Simon, > > >>>I'm trying to port some sdcc code that used to build fine on sdcc >>>(2005 versions). It's a build for the 16F628. One problem I'm having >>>is changing the config word. > > > Hmm, sorry. I broke this (accidentally) when I added support for extern > declared SFRs. I am already trying to fix it to make it work as > previously. > > >>I notice that if I declare something like this: >> >>volatile unsigned int __at(0x2007) CONFIG; >> >>And then assign to CONFIG somewhere inside main() then it seems to do >>the right thing. Doing this inside code seems strange to me, but it >>works okay. > > > Glad you found a workaround; still this is a bug that needs to be fixed. > The "old way" is the recommended one as soon it works again. |