Да уж намешали ежа со свиньёй.. Больше похоже на "смешанный" ASM+ASM проект :). С там как бедный родственник: скажем, примеры инициализации структур и переменных сделаны внутри .s, а на С только уже вызовы функций. Зачем? Как там "чиста-Сишники" будут разбираться ума не приложу. Можно глянуть на тот же FIR:
..\MPLAB C30\examples\dsPIC30F\CE005_FIR_DSP_lib_Filter\src
Инициализация структур и переменных в FIRExample.c почему-то отсутствует, она (в зависимости от типа FIR и использования памяти под структуры) там:
bandpassexample.s
bandpassexample_psv.s
lowpassexample.s
lowpassexample_psv.s
Пример инициализации структуры фильтра:
; ..............................................................................
; Allocate and intialize filter structure
.section .data
.global _lowpassexampleFilter
_lowpassexampleFilter:
.hword lowpassexampleNumTaps
.hword lowpassexampleTaps
.hword lowpassexampleTaps+lowpassexampleNumTaps*2-1
.hword 0xff00
.hword lowpassexampleDelay
.hword lowpassexampleDelay+lowpassexampleNumTaps*2-1
.hword lowpassexampleDelay
По-моему над чисто Сишниками там просто тонко издеваются.
Теперь подходим к .data. Как видно из их экзамплов, они пользуют обычные .s, а в документации:
"Sections are locatable blocks of code or data that will occupy contiguous locations in
the 16-bit device memory. Three sections are pre-defined: .text for executable code,
.data for initialized data and .bss for uninitialized data. [...]
.data
Definition
Assemble the following statements onto the end of the .data (initialized data) section.
Example
; The following symbols (D1 and D2) will be placed in
; the initialized data section.
.data
D1: .long 0x12345678 ; 4 bytes
D2: .byte 0xFF ; 1 byte
" (с) MPLAB ASM30 MPLAB LINK30 and Utilites User's Guide
Собсна простые переменные особо не вдохновляют, а вот переложить на С30 инициализацию указателей на разные типы памяти (как в примерах DSP Lib) очень недурственно было бы, однако не работает пока у мну. Препроцессор тут не поможет, ибо адреса указателей (читай - меток) будут известны только линкеру на конечной стадии сборки.
Вот и задал вопрос, может кто уже пользует без проблем?