-JonnS- 0 4 апреля, 2014 Опубликовано 4 апреля, 2014 · Жалоба как разместить остальные переменные в CCMRAM. Я делал так: в Scatter-файл обявляю: LR_IRAM2 0x10000000 0x00010000 { RW_IRAM2 0x10000000 0x00010000 { *(CCM_RW) .ANY (+RW) } } в "main.c" #pragma arm section rwdata = "CCM_RW" uint8_t h[] = {1, 2, 3}; #pragma arm section rwdata #pragma arm section zidata = "CCM_RW" SAMPLE M_Buf[COUNT]; #pragma arm section zidata Надеюсь поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 6 апреля, 2014 Опубликовано 6 апреля, 2014 · Жалоба Я делал так: ... Надеюсь поможет. Спасибо. Я уже все сделал, поизвращался со scatter файлом по-всякому. Разместил массив в основной памяти, забрал всю под завязку, все 40 KB. В CCMRAM разместил стек, код и остальные переменные. Все работает замечательно. :rolleyes: LR_IROM1 0x08000000 0x040000 { ; load region size_region ER_IROM1 0x08000000 0x040000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } ER 0x10000800 0x001800 { ; load address = execution address .ANY (ccmram) } ARM_LIB_STACK 0x10000800 EMPTY -0x000200 { ; stack ; } ARM_LIB_HEAP +0 EMPTY 0 { ; heap ; } RW_IRAM1 0x20000000 ANY_SIZE 0x00A000 0x00A000 { ; RW data, WaveBuff ; .ANY (+RW +ZI) .ANY (wave) } RW_IRAM2 0x10000000 0x002000 { ; CCMRAM .ANY (+RW +ZI) } } P.S. размер CCM памяти у вас великоват, 64K. Разве там столько ее? P.P.S. основной затык был в неправильном размере памяти в Кейле (писал выше), и что в процессе создания стека нужно иметь еще столько же пустой. Последнее мне не совсем понятно, не докопался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-JonnS- 0 6 апреля, 2014 Опубликовано 6 апреля, 2014 · Жалоба CCM-Ram у F4xx вроди как 64k. Пример под F4 discovery писался, sorry не уточнил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться