//.stackstart,
SSTACK,
//.stackend,
PAGED_RAM,
DEFAULT_RAM
INTO RAM;
DISTRIBUTE DISTRIBUTE_INTO
ROM_4000, PAGE_FE, PAGE_FC, PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F8;
CONST_DISTRIBUTE DISTRIBUTE_INTO
ROM_4000, PAGE_FE, PAGE_FC, PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F8;
DATA_DISTRIBUTE DISTRIBUTE_INTO
RAM;
//.vectors INTO OSVECTORS;
END
ENTRIES
//_vectab OsBuildNumber _OsOrtiStackStart _OsOrtiStart
END
STACKSIZE 0x100
VECTOR 0 _Startup
//VECTOR 0 Entry
//INIT Entry
1 .prm Îļþ×é³É½á¹¹
°´Ëùº¬µÄÐÅÏ¢µÄ²»Í¬.prmÎļþÓÐÁù¸ö×é³É²¿·Ö¹¹³É£¬ÕâÀï½öÌÖÂÛºÍÄÚ´æ¿Õ¼äÓ³Éä¹ØÏµ½ôÃܵÄÈý¸ö²¿·Ö£¬ÆäËûµÄ²»×öÌÖÂÛ¡£
¡¤ SEGMENTS ¡ END
¶¨ÒåºÍ»®·ÖоƬËùÓпÉÓõÄÄÚ´æ×ÊÔ´£¬°üÀ¨³ÌÐò¿Õ¼äºÍÊý¾Ý¿Õ¼ä¡£Ò»°ãÎÒÃǽ«³ÌÐò¿Õ¼ä¶¨Òå³ÉROM£¬°ÑÊý¾Ý¿Õ¼ä¶¨Òå³ÉRAM£¬µ«ÕâЩÃû×Ö¶¼²»ÊÇ
ϵͳ±£ÁôµÄ¹Ø¼ü´Ê£¬¿ÉÒÔÓÉÓû§ËæÒâÐ޸ġ£Óû§Ò²¿ÉÒÔ°ÑÄÚ´æ¿Õ¼ä°´µØÖ·ºÍÊôÐÔËæÒâ·Ö¸î³É´óС²»Í¬µÄ¿é£¬Ã¿¿é¿ÉÒÔ×ÔÓÉÃüÃû¡£ÀýÈçͬÑùÊÇRAM£¬
¿ÉÒÔʹÓò»Í¬µÄÊôÐÔ£¬Ê¹ÆäÓи´Î»ºó±äÁ¿ÇåÁãºÍ²»ÇåÁãÖ®·Ö¡£
¹ØÓÚÄÚ´æ»®·ÖµÄ¾ßÌå·½·¨ÔÚºóÃæÏê½â¡£
¡¤ PLACEMENT ¡ END
½«Ö¸ÅÉÔ´³ÌÐòÖÐËù¶¨ÒåµÄ¸÷ÖֶΣ¬ÈçÊý¾Ý¶ÎDATA_SEG¡¢CONST_SEGºÍ´úÂë¶ÎCODE_SEG ±»¾ßÌå·ÅÖõ½ÄÄÒ»¸öÄÚ´æ¿éÖС£ËüÊǽ«Ô´³ÌÐòÖе͍
ÒåÃèÊöºÍʵ¼ÊÎïÀíÄÚ´æ¹Ò¹³µÄÇÅÁº¡£
¡¤ STACKSIZE
¶¨Òåϵͳ¶ÑÕ»³¤¶È£¬Æäºó¸ø³öµÄ³¤¶È×Ö½ÚÊý¿ÉÒÔ¸ù¾Ýʵ¼ÊÓ¦ÓÃÐèÒª½øÐÐÐ޸ġ£¶ÑÕ»µÄʵ¼Ê¶¨Î»È¡¾öÓÚRAMÄÚ´æµÄ»®·ÖºÍʹÓÃÇé¿ö¡£Ä¬ÈϵÄÇé¿öÏ£¬
¶ÑÕ»·ÅÔÚRAMÇøÓòµÄÆðʼ²¿·Ö¡£µ±È»£¬¶ÑÕ»µÄ¶¨Òå²»Ö»ÓÐÕâÖÖ·½Ê½£¬»¹¿ÉÒÔʹÓÃSTACKTOP¹Ø¼ü×Ö¡£ºóÃæ½«ÏêϸÌÖÂÛ¡£
2 ÄÚ´æ»®·ÖµÄ¾ßÌ巽ʽ
ÓÉSEGMENTS¿ªÊ¼µ½ENDΪֹ£¬Öмä¿ÉÒÔÌí¼ÓÈÎÒâ¶àÐÐÄÚ´æ»®·ÖµÄ¶¨Ò壬ÿһÐÐÓ÷ֺŽáβ¡£¶¨ÒåÐеÄÓï·¨ÐÍʽΪ£º
[¿éÃû] = [ÊôÐÔ1] [ÊôÐÔ2] £¬¡ £¬[ÊôÐÔn] [ÆðʼµØÖ·] TO [½áÊøµØÖ·];
ÆäÖУ¬
¡¤ ¡°¿éÃû¡±µÄ¶¨ÒåºÍCÓïÑÔ±äÁ¿¶¨ÒåÏàͬ£¬ÊÇÒÔÓ¢ÎÄ×Öĸ¿ªÍ·µÄÒ»¸ö×Ö·û´®£¬Óû§¿ÉÒÔ×Ô¼ºÈÎÒⶨÒå¿éÃû¡£
¡¤ ¡°ÊôÐÔ¡±Óû§ÊDz»ÄÜ×Ô¼º¶¨ÒåµÄ£¬ÒòΪÊôÐÔÃûÖ¸¶¨ÁËÉÏÃæËù˵µÄ¡°¿éÃû¡±Ëù¶ÔÓ¦µÄ²»Í¬µÄÄÚ´æÀàÐͺͷÃÎÊ·½Ê½£¬¶ø²»Í¬ÎïÀíÄÚ´æµÄÀàÐͺͷÃÎÊ·½Ê½ÊÇÒ»
¶¨µÄ¡£
¶ÔÓÚ¡°ÊôÐÔ1¡±£¬Codewarrior 5.0ÖпÉÒÔÓÐÈýÖÖ²»Í¬µÄÀàÐÍ£¬¶ÔÓÚÖ»¶ÁµÄFlash-ROMÇøÊôÐÔÒ»¶¨ÊÇREAD_ONLY£¬¶ÔÓڿɶÁдµÄRAMÇøÊôÐÔ¿ÉÒÔÊÇ
READ_WRITE£¬Ò²¿ÉÒÔÊÇNO_INIT¡£ËüÃÇÁ½ÕߵĹؼüÇø±ðÊÇANSI-CµÄ³õʼ»¯´úÂë»á°Ñ¶¨Î»ÔÚREAD_WRITE¿éÖеÄËùÓÐÈ«¾ÖºÍ¾²Ì¬±äÁ¿×Ô¶¯ÇåÁ㣬
¶øNO_INIT¿éÖеıäÁ¿½«²»»á±»×Ô¶¯ÇåÁã¡£µ±È»Ö»ÊǸ´Î»Ê±²»ÇåÁ㣬µôµçʱ»¹ÊÇÇåÁãµÄ£¬µ«ÊǶÔÓÚµ¥Æ¬»úϵͳ£¬±äÁ¿ÔÚ¸´Î»Ê±²»±»×Ô¶¯ÇåÁãÕâÒ»
ÌØÐÔÓÐʱÊǺܹؼüµÄ£¬ÔÚijЩӦÓÃÖÐÓÐÌØÊâµÄÓÃ;¡£
¶ÔÓÚ¡°ÊôÐÔ2 ¡ ÊôÐÔn¡±£¬¸ù¾ÝÉÏÃæ¸ø³öµÄ.prmµÄ·¶ÀýÎļþ¿ÉÒÔ¿´³öÀ´£¬¿ÉÄܵÄÐÎʽÓС°DATA_FAR¡±¡¢¡°DATA_NEAR¡±¡¢¡°IBCC_FAR¡±¡¢¡°IBCC_NEAR¡±
ËÄÖÖÀàÐÍ¡£ÆäÖУ¬¡°DATA_FAR¡±ºÍ¡°DATA_NEAR¡±Ïà¶ÔÓ¦£¬µ±ÄÚ´æÇøÓò°üº¬±äÁ¿»òÕßÊdz£Á¿Ê±£¨Í¨³£ÊÇRAM¡¢FlashºÍEEPROM£©£¬±ØÐëÖ¸Ã÷ÉÏÃæ
Á½ÖÖÊôÐÔÖеÄÒ»ÖÖ£¬ÓÉÓÚÉæ¼°µ½ÄÚ´æµÄ·ÖÒ³£¬¿ÉÒÔÕâÑùÀí½â£º¡°DATA_FAR¡±ÊôÐÔÖ¸¶¨µÄÄÚ´æ¿éΪ¿ÉÒÔ±£´æÊý¾ÝµÄ·Ç¹Ì¶¨Ò³£¬¶ø¡°DATA_NEAR¡±ÊôÐÔ
Ö¸¶¨µÄÄÚ´æ¿éΪ¿ÉÒÔ±£´æÊý¾ÝµÄ¹Ì¶¨Ò³£»Í¬Àí¡°IBCC_FAR¡±ºÍ¡°IBCC_NEAR¡±Ïà¶ÔÓ¦£¬µ±ÄÚ´æÇøÓò°üº¬´úÂëʱ£¨FlashºÍEEPROM£©£¬±ØÐëÖ¸Ã÷ÉÏÃæ
Á½ÖÖÊôÐÔÖеÄÒ»ÖÖ£¬¡°IBCC_FAR¡±ÊôÐÔÖ¸¶¨µÄÄÚ´æ¿éΪ¿ÉÒÔ±£´æ´úÂëµÄ·Ç¹Ì¶¨Ò³£¬¶ø¡°IBCC_NEAR¡±ÊôÐÔÖ¸¶¨µÄÄÚ´æ¿éΪ¿ÉÒÔ±£´æ´úÂëµÄ¹Ì¶¨Ò³
ÌÖÂÛµ½ÕâÀϸÐĵĶÁÕßÒѾ·¢ÏÖ£¬ÔÚÉÏÃæµÄ.prmÎļþ·¶ÀýÖУ¬RAMµÄÊôÐÔÓС°DATA_FAR¡±ºÍ¡°DATA_NEAR¡±Á½ÖÖ£¬FlashµÄÊôÐÔÖÐÒ²ÊÇËÄÖÖ¶¼ÓУ¬
µ«ÊÇEEPROMÖÐÈ´Ö»ÓС°DATA_FAR¡±ºÍ¡°IBCC_FAR¡±Á½ÖÖ£¬ÕâÕýºÃÑéÖ¤ÁËÉÏһƪÎÄÕ£¨·É˼¿¨¶û16λµ¥Æ¬»úµÄ×ÊÔ´ÅäÖã©ÖÐËùÌáµ½µÄ£¬RAM¡¢Flash
Öж¼Óй̶¨Ò³£¬µ«ÊÇEEPROMÖÐÈ«²¿ÊǷǹ̶¨Ò³¡£
¡¤ ÆðʼµØÖ·ºÍ½áÊøµØÖ·¾ö¶¨ÁËÒ»ÄÚ´æ¿éµÄÎïÀíλÖ㬶ÔÓڹ̶¨Ò³£¬ÓÃ4λ16½øÖÆÊý±íʾ£¬¶ø¶ÔÓڷǹ̶¨Ò³£¬ÔòÓÃ6λ16½øÖƱíʾ£¬¶à³öÀ´µÄÁ½Î»
ÆäʵÊǼĴæÆ÷EPAGE¡¢RPAGE»òPPAGEµÄÖµ£¬¿É¼û£¬¶ÔÓÚ·ÖÒ³µÄ×ÊÔ´£¬ÊÇͨ¹ý¼Ä´æÆ÷£¨EPAGE¡¢RPAGE»òPPAGE£©ºÍ16λµÄµØÖ·×ÜÏßµÄ×éºÏ
À´½øÐÐѰַµÄ¡£
¡°TO¡±ÊÇϵͳ±£ÁôµÄ¹Ø¼ü×Ö£¬±ØÐë´óд¡£
ÏÂÃæ£¬¸ù¾ÝÉÏÃæ·¶ÀýÌṩµÄÄÚÈÝ£¬¾Ù¼¸¸öÀý×Ó£º
Àý1 RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF;
ÉÏÃæÕâ¾ä»°µÄÒâ˼ÊÇ£º·ÖÅä0x2000-0x3FFFµÄÇøÓòµÄ¿éÃûΪ¡°RAM¡±£¨µ±È»¿ÉÒÔ¶¨Òå±ðµÄÃû³Æ£©£¬ÓÉÉÏһƪÎÄÕ¶øÖª£¬ÕâÒ»ÇøÓòµÄÎïÀíÄÚ´æµÄÐÔÖÊΪ
RAM£¬ÊôÐÔÓ¦¸ÃΪ¡°READ_WRITE¡±£¬²¢ÇÒÕâÒ»ÇøÓòÖеÄÁ½Ò³¶¼Îª¹Ì¶¨Ò³£¬ËùÒÔΪ¡°DATA_NEAR¡±¡£
Àý2 ½«8K×Ö½ÚRAMµÄºóÃæ4K×Ö½Ú¶¨Òå³É·Ç×Ô¶¯ÇåÁãµÄÊý¾Ý±£ÁôÇø£¬ÔòÓ¦Èç϶¨Ò壺
SEGMENTS
¡¡
RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x2FFF;
RAM_NO_INIT = NO_INIT DATA_NEAR 0x3000 TO 0x3FFF;
¡¡