📄 examplescfg.lst
字号:
1
1 000000 .bss _MEM_memtab, 01H * MEM_A_SEGMENTSIZE, STD_TARGWORDMAUS, isMemsegAligned
1
1 ;
1 ; Set MEM_tabIdx to 1 if _segzero is set to a MEM segment other then
1 ; MEM_NULL because the MEM segment will in the 0th place.
1 ; If _segzero is MEM_NULL then set MEM_tabIdx to 0 since MEM_NULL is
1 ; only a place holder and not a real MEM segment with a heap.
1 ;
1 .if $symcmp("MEM_NULL", "DARAM") == 0
1 .asg 0, MEM_tabIdx ; Index into MEM_memtab
1 .else
1 .asg 1, MEM_tabIdx ; Index into MEM_memtab
1 .endif
1
1 ;
1 ; _MEM_memtab needs to be set to zero if no heap are defined
1 ;
1 .else
1 .global _MEM_memtab
1 _MEM_memtab .set 00h
1
1 .endif ; .if :_gNumHeap:
1
266
267 ;; ======== OBJ_config ========
268 000008 OBJ_config
1
1 .if (__large_model)
1 .asg "_OBJ_table + 0 * STD_TARGWORDMAUS", OBJ_TAB_SEM
1 .asg "_OBJ_table + 4 * STD_TARGWORDMAUS", OBJ_TAB_SWI
1 .asg "_OBJ_table + 8 * STD_TARGWORDMAUS", OBJ_TAB_TSK
1 .asg "_OBJ_table + 12 * STD_TARGWORDMAUS", OBJ_TAB_MBX
1 .asg "_OBJ_table + 16 * STD_TARGWORDMAUS", OBJ_TAB_SIO
1 .asg "_OBJ_table + 20 * STD_TARGWORDMAUS", OBJ_TAB_SA
1 .else
1 .asg "_OBJ_table + 0 * STD_TARGWORDMAUS", OBJ_TAB_SEM
TMS320C55x COFF Assembler Version 2.04 Tue Apr 15 17:20:23 2003
Copyright (c) 1996-2001 Texas Instruments Incorporated
examplescfg.s55 PAGE 12
1 .asg "_OBJ_table + 2 * STD_TARGWORDMAUS", OBJ_TAB_SWI
1 .asg "_OBJ_table + 4 * STD_TARGWORDMAUS", OBJ_TAB_TSK
1 .asg "_OBJ_table + 6 * STD_TARGWORDMAUS", OBJ_TAB_MBX
1 .asg "_OBJ_table + 8 * STD_TARGWORDMAUS", OBJ_TAB_SIO
1 .asg "_OBJ_table + 10 * STD_TARGWORDMAUS", OBJ_TAB_SA
1 .endif
1
1 .asg _OBJ_table + 0 * STD_TARGWORDMAUS, OBJ_sem$next
1 .asg _OBJ_table + 2 * STD_TARGWORDMAUS, OBJ_swi$next
1 .asg _OBJ_table + 4 * STD_TARGWORDMAUS, OBJ_tsk$next
1 .asg _OBJ_table + 6 * STD_TARGWORDMAUS, OBJ_mbx$next
1 .asg _OBJ_table + 8 * STD_TARGWORDMAUS, OBJ_sio$next
1 .asg _OBJ_table + 10 * STD_TARGWORDMAUS, OBJ_sa$next
1
1 .asg _OBJ_table + 0 * STD_TARGWORDMAUS, OBJ_sem$prev
1 .asg _OBJ_table + 2 * STD_TARGWORDMAUS, OBJ_swi$prev
1 .asg _OBJ_table + 4 * STD_TARGWORDMAUS, OBJ_tsk$prev
1 .asg _OBJ_table + 6 * STD_TARGWORDMAUS, OBJ_mbx$prev
1 .asg _OBJ_table + 8 * STD_TARGWORDMAUS, OBJ_sio$prev
1 .asg _OBJ_table + 10 * STD_TARGWORDMAUS, OBJ_sa$prev
1
1 .asg 1, SEM$sernum
1 .asg 1, SWI$sernum
1 .asg 1, TSK$sernum
1 .asg 1, MBX$sernum
1 .asg 1, SIO$sernum
1 .asg 1, SA$sernum
1
269
270 ;; ======== CLK_config ========
271 .asg 010H, _IMR0TINTMASK
272 .asg 00H, _IMR1TINTMASK
273 .asg 04H, _INTBIT
274 .asg 010H, _TIMERIMRMASK
275 .asg 01000H, _REGS
276 .asg 00H, _TIMERIMR
277 .asg 01H, _TIMERIFR
278 .asg 00H, _TIMERNUM
279 .asg 01H, _USETIMER
280 .asg 022H, _TCR
281 .asg 02H, _TDDR
282 .asg 0b64aH, _PRD
283 .asg 0b64bH, _COUNTSPMS
284 .asg 00H, _COUNTSPMSHIGH
285 .asg CLK_F_getshtime, _TIMEFXN
286 .asg CLK_F_run, _HOOKFXN
287 000008 CLK_config _IMR0TINTMASK, _IMR1TINTMASK, _INTBIT, _TIMERIMRMASK, _REGS, _TIMERIMR, _TIMERIFR, _TIMER
1
1 .if (CLK$ = 1) ; only expand if
1 ; the CLK
1 ; module is
1 ; configured by
1 ; the user
1 .else
1 .wmsg "CLK Clock Services are not available"
TMS320C55x COFF Assembler Version 2.04 Tue Apr 15 17:20:23 2003
Copyright (c) 1996-2001 Texas Instruments Incorporated
examplescfg.s55 PAGE 13
1 .endif
288
289 ;; ======== PRD_config ========
290 .asg 04000H, _SCALAR
291 .asg KNL_tick_stub, _THOOKFXN
292 000008 PRD_config _SCALAR, _THOOKFXN
1
1 ; Currenly, GCONF routine will pass above 2 parameters
1 ; to this macro even though we don't use them here.
1 ; Need to declare related variables as globals in the
1 ; prd.cdb results in this GCONF inconsistency. This is a
1 ; known issue to be fixed when Gconf cleanup occurs.
1
1 .asg 0, PRD_swihandle
1 .eval 0, PRD$prdCount
1
1 ; expand only if the PRD module is configured by the user
1 .if (PRD$ = 1)
1 .if (PRD$NUMOF > 0)
1 .if (SWI$ != 1)
1 .emsg "PRD objects require the configuration of SWI"
1 .mexit
1 .endif
1 .asg "PRD_swi", PRD_swihandle
1 .endif
1 .endif
1
293
294 ;; ======== RTDX_config ========
295 .asg 01H, _USERTDX
296 .asg 00H, _USERTEXECUTION
297 .asg DARAM, _DATAMEMSEG
298 .asg 0102H, _BUFMEMSIZE
299 000008 RTDX_config _USERTDX, _USERTEXECUTION, _DATAMEMSEG, _BUFMEMSIZE
1 .if(RTDX_USERTDX = 1)
1 .global _RTDX_Buffer, _RTDX_Buffer_Start, _RTDX_Buffer_End
1
1 ; reserve uninitialized space for RTDX buffer
1 000008 C55_allocateObject isRtdxAligned, _RTDX_Buffer, _bufsize, ".rtdx_data"
2 000008 CHK_nargs "CINIT", section
2
2 .var objSize ; Explicitly decalate a variable
2 ; so that it limits the scope
2 ; to the macro
2 .eval 0102H, objSize ; This is the size of
2 ; .object
2 .if (isRtdxAligned = 2) ; Does the Obj require alignment
2 .if (258 & 0x1) ; if the cinit size is odd
2 .eval objSize + 1, objSize ; Make it even
2 .endif
2 000000 _RTDX_Buffer .usect ".rtdx_data", 258, 0, 1 ; allocate object at
2 ; even boundary
2 .else
2 _RTDX_Buffer .usect ":section:", objSize, 0, 0
2 ; allocate object at any
TMS320C55x COFF Assembler Version 2.04 Tue Apr 15 17:20:23 2003
Copyright (c) 1996-2001 Texas Instruments Incorporated
examplescfg.s55 PAGE 14
2 ; boundary.
2 ; Note that the last parameter
2 ; is a flag that represents
2 ; if the object has alignment
2 ; requirment or not.
2 .endif
2
1
1 ; define _RTDX_Buffer_Start
1 000008 C55_allocateObject isDataPtrAligned, _RTDX_Buffer_Start, DATAPTRSIZE, ".rtdx_data"
2 000008 CHK_nargs "CINIT", section
2
2 .var objSize ; Explicitly decalate a variable
2 ; so that it limits the scope
2 ; to the macro
2 .eval 1, objSize ; This is the size of
2 ; .object
2 .if (1 = 2) ; Does the Obj require alignment
2 .if (objSize & 0x1) ; if the cinit size is odd
2 .eval objSize + 1, objSize ; Make it even
2 .endif
2 _RTDX_Buffer_Start .usect ":section:", objSize, 0, 1 ; allocate object at
2 ; even boundary
2 .else
2 000102 _RTDX_Buffer_Start .usect ".rtdx_data", 1, 0, 0
2 ; allocate object at any
2 ; boundary.
2 ; Note that the last parameter
2 ; is a flag that represents
2 ; if the object has alignment
2 ; requirment or not.
2 .endif
2
1
1 000008 C55_cinitHeader CINITALIGN, isDataPtrAligned, _RTDX_Buffer_Start, DATAPTRSIZE, DATAPAGE
2 000008 CHK_nargs "CINIT", page
2 .var cinitSize ; Explicitly decalate a variable
2 ; so that it limits the scope
2 ; to the macro
2 .eval 1, cinitSize ; This is the size of
2 ; cinit records.
2 .if (1 = 2) ; Does the Obj require alignment
2 .if (:objSize: & 0x1) ; if the cinit size is odd
2 .eval cinitSize + 1, cinitSize ; Make it even
2 .endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -