Dimitry I use the IAR __low_level_init extensively in my projects. 1) temporarily hold the watchdog. 2) start a high speed crystal so everything else goes fast. 3) initialize the IO ports so board hardware is in a known state. 4) wait for the oscillator to stablize 5) set the various clocks & their dividers 6) restart the watchdog with appropriate values 7) return to startup routine to zero .bss, copy .data, and call main()
Regards -Bill Knight R O SOftWare On Tue, 20 Jan 2004 19:39:03 +0300, Dmitry wrote: now I see... There is only the way to do this -- redefine interrupt vectors table. then write you preintializer, then call __reset_vector. I actually did not think much about it. Any example of the _real_ situation/environment when you need to do some pre-inits? ~d > Could you explain in short words, what do you mean? > (I am only a C-newbie. I am a hardware engineer, who knows a possible > architecture of the MSP430 and the assembler very well.) > > 2. make your 'main' doing low_level_init then branch to real main. > This would lead to the fact, that _reset_vector__ is computed first. > Then a CALL to a initialisation function would be done and after this, > the real body of main would be executed > This is not what I would like to have. > Let me describe in assembler, what I want: > _reset_vector__: > MOV #0x5A80,&0x0120 ;hold watchdog (optional) > MOV #0x0A00,R1 ;initialize SP > CALL #__low_level_init > ;do all the other stuff > ;what has to be done > ;in the C prologue > ;NOTE: > ;this should be automatical generated > ;by the C-compiler > JMP main > main: > ;main program > ;... > __low_level_init: > ;do specific low level init > ;before the C-prologue is computed > RET > My intention is, to have specific initialisazion at the very first time, > because the C-prologue may be too time consuming to do it afterwards (or > there are some other reasons...). To achieve this, I don't want to write > my own _reset_vector__, because this should be automatically made by the > compiler (that can do this better than me). > This mechanism is offered by IARs C-Compiler and called > "__low_level_init". So I am asking if there is a similar solution for > MSP430-GCC. > Ralf > ------------------------------------------------------- > The SF.Net email is sponsored by EclipseCon 2004 > Premiere Conference on Open Tools Development and Integration > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. > http://www.eclipsecon.org/osdn > _______________________________________________ > Mspgcc-users mailing list > Mspgcc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mspgcc-users -- /***************************************************************** ("`-''-/").___..--''"`-._ (\ Dimmy the Wild UA1ACZ `6_ 6 ) `-. ( ).`-.__.`) State Polytechnical Univ. (_Y_.)' ._ ) `._ `. ``-..-' Radio-Physics Departament _..`--'_..-_/ /--'_.' ,' Saint Petersburg, Russia (il),-'' (li),' ((!.-' +7 (812) 5403923, 5585314 *****************************************************************/ ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users