⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tbdml_linker.prm

📁 本人s12的一部分机器人巡线程序
💻 PRM
字号:
NAMES END

SEGMENTS
    RAM = READ_WRITE 0x0400 TO 0x23FF;
    /* unbanked FLASH ROM */
    ROM_4000 = READ_ONLY  0x4000 TO 0x7FFF;
    ROM_C000 = READ_ONLY  0xC000 TO 0xFEFF;
    /* banked FLASH ROM */
//    PAGE_30 = READ_ONLY  0x308000 TO 0x30BFFF;
//    PAGE_31 = READ_ONLY  0x318000 TO 0x31BFFF;
//    PAGE_32 = READ_ONLY  0x328000 TO 0x32BFFF;
//    PAGE_33 = READ_ONLY  0x338000 TO 0x33BFFF;
//    PAGE_34 = READ_ONLY  0x348000 TO 0x34BFFF;
//    PAGE_35 = READ_ONLY  0x358000 TO 0x35BFFF;
//    PAGE_36 = READ_ONLY  0x368000 TO 0x36BFFF;
//    PAGE_37 = READ_ONLY  0x378000 TO 0x37BFFF;
    PAGE_38 = READ_ONLY  0x388000 TO 0x38BFFF;
    PAGE_39 = READ_ONLY  0x398000 TO 0x39BFFF;
    PAGE_3A = READ_ONLY  0x3A8000 TO 0x3ABFFF;
    PAGE_3B = READ_ONLY  0x3B8000 TO 0x3BBFFF;
    PAGE_3C = READ_ONLY  0x3C8000 TO 0x3CBFFF;
    PAGE_3D = READ_ONLY  0x3D8000 TO 0x3DBFFF;
/*    PAGE_3E = READ_ONLY  0x3E8000 TO 0x3EBFFF; not used: equivalent to ROM_4000 */
/*    PAGE_3F = READ_ONLY  0x3F8000 TO 0x3FBFFF; not used: equivalent to ROM_C000 */
END

PLACEMENT
    _PRESTART,                   /* Used in HIWARE format: jump to _Startup at the code start */
    STARTUP,                     /* startup data structures */
    ROM_VAR,                     /* constant variables */
    STRINGS,                     /* string literals */
    VIRTUAL_TABLE_SEGMENT,       /* C++ virtual table segment */
    DEFAULT_ROM, NON_BANKED  ,                  /* runtime routines which must not be banked */
    COPY                         /* copy down information: how to initialize variables */
                                 /* in case you want to use ROM_4000 here as well, make sure
                                    that all files (incl. library files) are compiled with the
                                    option: -OnB=b */
                                 INTO  ROM_C000;
    OTHER_ROM                    INTO  ///*PAGE_30,PAGE_31,*/PAGE_32,PAGE_33/*,PAGE_34*/,PAGE_35,PAGE_36,PAGE_37,
                                        ROM_4000;
    TaskStartCode                INTO  PAGE_38;
    Task_FollowLineCode          INTO  PAGE_39;
    Task_LineCounterCode         INTO  PAGE_39;
    Task_SpreadShortCode         INTO  PAGE_39;
    Task_SwerveCode              INTO  PAGE_3A;
    Task_SnatchCode              INTO  PAGE_3B;
    Task_UpdownCode              INTO  PAGE_3C;
    Task_HostServantCommCode     INTO  PAGE_3D;
    
    DEFAULT_RAM                  INTO  RAM;
END

STACKSIZE 0x180

ENTRIES
TaskStart //开始任务
Task_FollowLine //循线任务
Task_LineCounter //数线任务 
Task_Swerve //转弯任务
Task_Snatch //手臂抓取任务
Task_Updown //手臂上升下降任务
Task_HostServantComm //和电脑通讯任务
Task_SpreadShort
END

//VECTOR 0 _Startup /* reset vector: this is the default entry point for a C/C++ application. */
VECTOR ADDRESS 0xFFFE _Startup
VECTOR ADDRESS 0xFFF0 OSTickISR
VECTOR ADDRESS 0xFFF6 OSCtxSw
VECTOR ADDRESS 0xFFDE Int_TimerOverFlow
//VECTOR ADDRESS 0x0000FFD0   Int_AD1
//VECTOR ADDRESS 0x0000FFD2   Int_AD0
VECTOR ADDRESS 0xFFE0 Int_Timer7OverFlow
VECTOR ADDRESS 0xFFE2 Int_Timer6OverFlow
VECTOR ADDRESS 0xFFE4 Int_Timer5OverFlow
VECTOR ADDRESS 0xFFE6 Int_Timer4OverFlow
VECTOR ADDRESS 0xFFE8 Int_Timer3OverFlow
VECTOR ADDRESS 0xFFEA Int_Timer2OverFlow
VECTOR ADDRESS 0xFFEC Int_Timer1OverFlow
VECTOR ADDRESS 0xFFEE Int_Timer0OverFlow
//VECTOR ADDRESS 0xFFD2 Int_AD0
//VECTOR ADDRESS 0xFFD0 Int_AD1
VECTOR ADDRESS 0xFFD6  sci0_isr                        
VECTOR ADDRESS 0xFFD4  sci1_isr
//VECTOR ADDRESS 0xFFFE  _Startup    			/* 0xFFFE Reset   */
//VECTOR ADDRESS 0xFFFC  clockmonitor_isr   	/* 0xFFFC Clock monitor fail reset  */
//VECTOR ADDRESS 0xFFFA  cop_isr    			/* 0xFFFA COP failure reset  */
//VECTOR ADDRESS 0xFFF8  trap_isr   			/* 0xFFF8 Unimplemented instruction trap  */
//VECTOR ADDRESS 0xFFF6  swi_isr    			/* 0xFFF6 SWI  */
//VECTOR ADDRESS 0xFFF4  xirq_isr    			/* 0xFFF4 XIRQ  */
//VECTOR ADDRESS 0xFFF2  irq_isr    			/* 0xFFF2 IRQ  */
//VECTOR ADDRESS 0xFFF0  rti_isr   			/* 0xFFF0 real Time Interrupt  */
//VECTOR ADDRESS 0xFFEE  ect_ch0_isr    		/* 0xFFEE Timer channel 0  */
//VECTOR ADDRESS 0xFFEC  ect_ch1_isr    		/* 0xFFEC Timer channel 1  */
//VECTOR ADDRESS 0xFFEA  ect_ch2_isr    		/* 0xFFEA Timer channel 2  */
//VECTOR ADDRESS 0xFFE8  ect_ch3_isr    		/* 0xFFE8 Timer channel 3  */
//VECTOR ADDRESS 0xFFE6  ect_ch4_isr    		/* 0xFFE6 Timer channel 4  */
//VECTOR ADDRESS 0xFFE4  ect_ch5_isr    		/* 0xFFE4 Timer channel 5  */
//VECTOR ADDRESS 0xFFE2  ect_ch6_isr   		/* 0xFFE2 Timer channel 6  */
//VECTOR ADDRESS 0xFFE0  ect_ch7_isr    		/* 0xFFE0 Timer channel 7  */
//VECTOR ADDRESS 0xFFDE  ect_overflow_isr   	/* 0xFFDE Timer overflow  */
//VECTOR ADDRESS 0xFFDC  pa_a_overflow_isr   	/* 0xFFDC Pulse accumulator A overflow  */
//VECTOR ADDRESS 0xFFDA  pa_a_edge_isr   		/* 0xFFDA Pulse accumulator input edge  */
//VECTOR ADDRESS 0xFFD8  spi0_isr    			/* 0xFFD8 SPI Serial transfer complete  */
//VECTOR ADDRESS 0xFFD6  sci0_isr    			/* 0xFFD6 SCI0  */
//VECTOR ADDRESS 0xFFD4  sci1_isr   			/* 0xFFD4 SCI1  */
//VECTOR ADDRESS 0xFFD2  atd0_isr    			/* 0xFFD2 ATD0  */
//VECTOR ADDRESS 0xFFD0  atd1_isr   			/* 0xFFD0 ATD1  */
//VECTOR ADDRESS 0xFFCE  portj_isr    		/* 0xFFCE port J  */
//VECTOR ADDRESS 0xFFCC  porth_isr    		/* 0xFFCC Port H  */
//VECTOR ADDRESS 0xFFCA  ect_mdc_isr    		/* 0xFFCA Modulus Down Counter underflow  */
//VECTOR ADDRESS 0xFFC8  pa_b_overflow_isr   	/* 0xFFC8 Pulse Accumulator B Overflow  */
//VECTOR ADDRESS 0xFFC6  crg_pll_lock_isr    	/* 0xFFC6 CRG lock  */
//VECTOR ADDRESS 0xFFC4  crg_scm_isr    		/* 0xFFC4 SCME  */
//VECTOR ADDRESS 0xFFC2  bdlc_isr    			/* 0xFFC2 BDLC  */
//VECTOR ADDRESS 0xFFC0  iic_isr    			/* 0xFFC0 IIC Bus  */
//VECTOR ADDRESS 0xFFBE  spi1_isr   			/* 0xFFBE SPI1  */
//VECTOR ADDRESS 0xFFBC  unused_isr    		/* 0xFFBC unused vector  */
//VECTOR ADDRESS 0xFFBA  eeprom_isr   		/* 0xFFBA EEPROM  */
//VECTOR ADDRESS 0xFFB8  flash_isr    		/* 0xFFB8 Flash  */
//VECTOR ADDRESS 0xFFB6  mscan0_wakeup_isr    /* 0xFFB6 MSCAN 0 wake-up  */
//VECTOR ADDRESS 0xFFB4  mscan0_error_isr   	/* 0xFFB4 MSCAN 0 errors  */
//VECTOR ADDRESS 0xFFB2  mscan0_rx_isr   		/* 0xFFB2 MSCAN 0 receive  */
//VECTOR ADDRESS 0xFFB0  mscan0_tx_isr    	/* 0xFFB0 MSCAN 0 transmit  */
//VECTOR ADDRESS 0xFFAE  mscan1_wakeup_isr   	/* 0xFFAE MSCAN 1 wake-up  */
//VECTOR ADDRESS 0xFFAC  mscan1_error_isr    	/* 0xFFAC MSCAN 1 errors  */
//VECTOR ADDRESS 0xFFAA  mscan1_rx_isr    	/* 0xFFAA MSCAN 1 receive  */
//VECTOR ADDRESS 0xFFA8  mscan1_tx_isr    	/* 0xFFA8 MSCAN 1 transmit  */
//VECTOR ADDRESS 0xFFA6  bf_rx_fifo_isr   	/* 0xFFA6 Byte Flight RX Fifo not empty  */
//VECTOR ADDRESS 0xFFA4  bf_rx_isr	    	/* 0xFFA4 Byte Flight receive  */
//VECTOR ADDRESS 0xFFA2  bf_sync_isr	    	/* 0xFFA2 Byte Flight syncronization  */
//VECTOR ADDRESS 0xFFA0  bf_general_isr    	/* 0xFFA0 Byte Flight general  */
//VECTOR ADDRESS 0xFF9E  unused_isr   		/* 0xFF9E unused vector  */
//VECTOR ADDRESS 0xFF9C  unused_isr    		/* 0xFF9C unused vector  */
//VECTOR ADDRESS 0xFF9A  unused_isr    		/* 0xFF9A unused vector  */
//VECTOR ADDRESS 0xFF98  unused_isr    		/* 0xFF98 unused vector  */
//VECTOR ADDRESS 0xFF96  mscan4_wakeup_isr    /* 0xFF96 MSCAN 4 wake-up  */
//VECTOR ADDRESS 0xFF94  mscan4_error_isr    	/* 0xFF94 MSCAN 4 errors  */
//VECTOR ADDRESS 0xFF92  mscan4_rx_isr   		/* 0xFF92 MSCAN 4 receive  */
//VECTOR ADDRESS 0xFF90  mscan4_tx_isr   		/* 0xFF90 MSCAN 4 transmit  */
//VECTOR ADDRESS 0xFF8E  portp_isr    		/* 0xFF8E Port P Interrupt */
//VECTOR ADDRESS 0xFF8C  pwm_shutdown_isr    	/* 0xFF8C PWM Shutdown  */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -