ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
120873 Топик полностью
blackbit (23.05.2008 10:10, просмотров: 178) ответил MBedder на DSP lib - смешанный ASM+C проект, оттого там и .data имеет право быть инициализированной. Собственно, и тебе так никто не мешает сделать - назови файлы *.S (а не .s), чтобы пропускать через препроцессор, выбери C30 Toolchain, и запускай компилятор
Да уж намешали ежа со свиньёй.. Больше похоже на "смешанный" 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) очень недурственно было бы, однако не работает пока у мну. Препроцессор тут не поможет, ибо адреса указателей (читай - меток) будут известны только линкеру на конечной стадии сборки. Вот и задал вопрос, может кто уже пользует без проблем?