| Jan Waclawek 03/06/10 14:36 Modified: 03/06/10 14:47 Read: 252 times Bratislava Slovakia |
#173907 - linking Responding to: Erik Malund's previous message |
Erik Malund said:
... the abscense of a separate linker SDCC is quite "normal" in this regard, i.e. it follows the preprocessor-compiler-assembler-linker model. Assuming you have a recent version installed (not 2.9.0), for '51[*], these are sdcpp-sdcc[**]-sdas8051-sdld, respectively; all located in the bin subdirectory of the installation directory. You can see the exact invocation of preprocessor, assembler and linker, if you add "-V" switch to the invocation of sdcc (note that switches are case sensitive). Erik said:
[...] the only means of precompiled file inclusion is from a libray. No. You might perhaps want to read chapter 3.1.3 Projects with Multiple Source Files of the manual. Erik said:
[...]ISRs need be prototyped in main() [...] The manual puts it down more precisely: sdccman.pdf in chapter 3.9.1 said:
If you have multiple source files in your project, interrupt service routines can be present in any of them, but a prototype of the isr MUST be present or included in the file that contains the function main. I think, Maarten Brock once has explained quite concisely the reason, why is it so, but I now can't find it[***], so I try myself (hope I don't get it wrong): when file containing main() is compiled, the interrupt vector table is created (as that contains also the reset vector). So, this file needs to "know", which ISRs are present in the program and under what name, to be able to create that table. I agree this might be one of the gotchas for the unaware "migrant". Jan [*] with the standard installation, you have installed support for *all* targets, i.e. not only '51, but also the extended Dallas '51-s (390 and 400), the Motorola/Freescale HC08, Zilog Z80 (including a gameboy-specific-derivative) and two lines of PICs (but those require some additional software to be installed). [**] this can be seen as an oddity perhaps. Traditionally, the program called by user to compile - cc - calls all the "components", including the compiler itself (called usually cc1). Here, the compiler itself, sdcc, is invoked by the user; while it calls the preprocessor-assembler-linker, it performs the compilation itself. But this is only a minor, completely unimportant, detail. [edit][***] found it http://www.8052.com/forumchat/read/166881 |
| Topic | Author | Date |
| SDCC download | Erik Malund | 03/05/10 11:53 |
| Here you go... | Robert Revens | 03/05/10 12:13 |
| newest | Jan Waclawek | 03/05/10 12:30 |
| Has any effort gone into documentation? | Richard Erlacher | 03/05/10 18:20 |
| documentation | Jan Waclawek | 03/06/10 03:16 |
| Just to add... | Robert Revens | 03/06/10 04:02 |
| more howto-s | Jan Waclawek | 03/06/10 05:13 |
| the first 'oddity' is ... | Erik Malund | 03/06/10 06:46 |
| I think you dreamt that one eric | Jez Smith | 03/06/10 07:27 |
| No - it's a well-known Gotcha! in SDCC! | Andy Neil | 03/06/10 11:46 |
| Reference: ISRs (or prototypes) must be in same file as main | Andy Neil | 03/07/10 01:04 |
| linking | Jan Waclawek | 03/06/10 14:36 |
| I see it not correct | Erik Malund | 03/06/10 14:51 |
| I don't understand | Jan Waclawek | 03/06/10 15:04 |
| what is it you do not understand? | Erik Malund | 03/07/10 07:11 |
| Does it not recognise... | Andy Neil | 03/07/10 07:25 |
| Surely not... | Robert Revens | 03/07/10 08:42 |
| "magic" | Jan Waclawek | 03/07/10 10:44 |
| That's not the fault of 'C'!! | Andy Neil | 03/07/10 13:14 |
| highly unusal, but | Erik Malund | 03/07/10 18:42 |
| Try java etc | Oliver Sedlacek | 03/08/10 07:54 |
| I now see why is this confusing | Jan Waclawek | 03/07/10 10:27 |
| emulation? | Andy Peters | 03/11/10 15:53 |
| Source-level debug | Robert Revens | 03/11/10 16:15 |
| symbol information | Maarten Brock | 03/12/10 04:05 |
| re: symbol information | Andy Peters | 03/15/10 18:40 |
| hex-file download? | Maarten Brock | 03/16/10 05:46 |
hex vs omf | Andy Peters | 03/16/10 12:08 |
| Keil proprietary stuff? | Andy Neil | 03/12/10 05:01 |
| extended omf51 | Juergen Christoph | 03/12/10 07:11 |
| omf51 vs cdb | Jan Waclawek | 03/15/10 16:48 |
| proprietary file format? | James Hinnant | 03/15/10 01:22 |
| I don't see why not | Andy Neil | 03/15/10 01:33 |
| So, what do *you* mean by, "proprietary" ? | Andy Neil | 03/16/10 02:15 |
| AutoCAD | Per Westermark | 03/16/10 03:15 |
| Yes | Per Westermark | 03/15/10 01:37 |
| patentable vs proprietary | James Hinnant | 03/15/10 23:39 |
| Proprietary is a questin of ownership, not protection | Per Westermark | 03/16/10 01:06 |
| bouncing email | Maarten Brock | 03/07/10 14:38 |



