User’s Manual 454.3 Cold BootMost microprocessors start executing at a fixed address, often address zero, after a reset orpower-on condition. The Rabbit has two mode pins (SMODE0, SMODE1—see Figure 5-1). The logic state of these two pins determines the startup procedure after a reset. If bothpins are grounded, then the Rabbit starts executing instructions at address zero. On reset,address zero is defined to be the start of the memory connected to the memory controllines /CS0, and /OE0. However, three other startup modes are available. These alternatemethods all involve accepting a data stream via a communications port that is used to storea boot program in a RAM memory, which in turn can be used to start any further second-ary boot process, such as downloading a program over the same communications port.(For a detailed description, see Section 7.10, “Bootstrap Operation.”)Three communication channels may be used for the bootstrap, either serial port A in asyn-chronous mode at 2400 bps, serial port A in synchronous mode with an external clock, orthe (parallel) slave port.The cold-boot protocol accepts groups of three bytes that define an address and a databyte. Each triplet causes a write of the data byte to either memory or to internal I/O space.The high bit of the address is set to specify the I/O space, and thus writes are limited to thefirst 32K of either space. The cold boot is terminated by a store to an address in I/O space,which causes execution to begin at address zero. Since any memory chip can be remappedto address zero by storing in the I/O space, RAM can be temporarily be mapped to zero toavoid having to deal with the more complicated write protocol of flash memory, which isthe usual default memory located at address zero.The following are the advantages of the cold-boot capability.• Flash memory can be soldered to the microprocessor board and programmed via aserial port or a parallel port. This avoids having to socket the part or program it with aBIOS or boot program before soldering.• Complete reprogramming of the flash memory can be accomplished in the field. This isparticularly useful during software development when the development platform canperform a complete reload of software regardless of the state of the existing software inthe processor. The standard programming cable for Dynamic C allows the developmentplatform to reset and cold boot the target, a Rabbit-based microprocessor board.• If the Rabbit is used as a slave processor, the master processor can cold boot it over viathe slave port. This means the slave can operate without any nonvolatile memory. OnlyRAM is required.