Hi, Im new to the arm family and embedded systems in general,till now iv worked a bit on the 89c51. Ive been puzzled by the following: why is a bootloader required in controllers like the at91rm9200 im using right now? how come no bootloader is required in a controller like the 89c51? Iv read a bit on the need for a bootloader in a PC..but why would it be required on a controller? Also, the atmel manual mentions that a default bootloader is provided in controllers like the one im using..my project involves porting of Linux to this controller..why,then, is a seperate bootloader reqd?? thanx in anticipation Mayank
why is a bootloader required?
Started by ●December 31, 2004
Reply by ●December 31, 20042004-12-31
If you are executing a program in ram you need something to load it from your storage device like your hard disk or flash drive. The bootloader is a small program in rom that does this. Peter
Reply by ●December 31, 20042004-12-31
in x51 architectures and all u have one program loaded in flash or any whr. on resetting system, the instruction pointer,IP will point to 0x0000 where u writes the jump instruction which points to the real program start location. but for complex architectures and all u need to initialize registers , set timers, flags and check for some other constraints etc. before going into program execution by the embedded sys. u can think ur computer bios in an analogus way to this...on starting it initializes the peripherals attached to it and the loads the IP with the location in secondary storage from where the boot record for OS is residing. hopes this serves the purpose
Reply by ●December 31, 20042004-12-31
Hi Mayank, Sometimes there is yet another reason: On parts like the MSP430 that are JTAG programmed this JTAG interface takes about half a dozen pins that can be difficult to wire up for dual use. This can be roughly a third of the port pins on a smaller pin count devices, too much to give up. So, there is a boot loader already on the uC that allows programming via a simple RS232 type setup, requiring much less in port pins. Regards, Joerg http://www.analogconsultants.com
Reply by ●December 31, 20042004-12-31
In article <1104478831.630041.307790@c13g2000cwb.googlegroups.com>, funkymunky <prehistorictoad2k@yahoo.com> writes>Hi, > > >Im new to the arm family and embedded systems in general,till now iv >worked a bit on the 89c51. Ive been puzzled by the following: why is a >bootloader required in controllers like the at91rm9200 im using right >now? how come no bootloader is required in a controller like the 89c51? >Iv read a bit on >the need for a bootloader in a PC..but why would it be required on a >controller?They are different boot loaders. One loads the program (OS) from disk to memory to run. on an 8051 the program is already in memory. the boot loader is to load the program into the empty MCU. Usually to flash memory so *next time* you fire up the chip the program will run automatically.>Also, the atmel manual mentions that a default bootloader is provided >in controllers like the one im using..Yes. It is in a special area of ROM.>my project involves porting of >Linux to this controller..STOP... Linux will not run on the 8051. GAME OVER Choose another MCU architecture. Preferably 32 bit. You can NOT run Linux on an 8051. Try an ARM part with an external bus. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/\ /\/\/ chris@phaedsys.org www.phaedsys.org \/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Reply by ●December 31, 20042004-12-31
In article <1104492249.960351.205940@c13g2000cwb.googlegroups.com>, peterk <peterk.vt80@gmail.com> writes>If you are executing a program in ram you need something to load it >from your storage device like your hard disk or flash drive. The >bootloader is a small program in rom that does this. >PeterOn an 8051 the program resides in flash... there is not a storage device. The boot loader is for programming an empty 51 code space instead of using an eprom programmer. It is not the same as a boot loader in a PC. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/\ /\/\/ chris@phaedsys.org www.phaedsys.org \/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Reply by ●December 31, 20042004-12-31
Luckily he is using an Atmel ARM part at91rm9200 like he said in his original post. Atmel has links in an FAQ for Linux development systems and drivers. Peter
Reply by ●January 1, 20052005-01-01
Hi! Thanx for the help..i read the Atmel manual more closely this time, it said that the boot program also implements a few rountines that can be called from user programs later on, so it saves some effort and makes ur code smaller. Quote:>STOP... Linux will not run on the 8051. GAME >OVERIm not trying to port Linux to an 8051! il be using an AT91rm9200 for that. Upon bootup, the Prog. Conter points to 0x0 which has a jump to the program code..This jump instruction is written by the software that we are using to load the program into the controller`s flash, is that correct? Or is it hard coded, so that program code must always start from a particular address..?
Reply by ●January 1, 20052005-01-01
In article <1104532695.886082.313770@z14g2000cwz.googlegroups.com>, peterk <peterk.vt80@gmail.com> writes>Luckily he is using an Atmel ARM part at91rm9200 like he said in his >original post. Atmel has links in an FAQ for Linux development systems >and drivers. >PeterSorry... put it down to a bout of pre New Year party drinking :-) The Atmel ARM part is OK for Linux. The Atmel (or any one else's 51 parts) are not. Jumping to conclusions because i have been asked about putting Linux on 51's /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/\ /\/\/ chris@phaedsys.org www.phaedsys.org \/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Reply by ●January 10, 20052005-01-10
hi Mayank! i think there is separate procedure for accessing bootloader memory and code memory! So they are accessed using the same address. its like using same name to call different persons, each person responds based on the context! so it is not hard coded!! Hi all! any one got any comments on my explanation! -srinivas