![]() |
|
|
Микроконтроллеры других производителей Все, что касается микроконтроллеров и НЕ подошло в раздел Microchip. |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Senior Member
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/52 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Уважаемые коллеги! Как определить массив в IAR, чтобы он не пересекал границ 1КБайт.
Для справки, речь о STM32F4, Burst DMA транзакции. Можно Код:
uint8_t A[234] @ 0x20000000; За ранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 12.07.2012
Возраст: 34
Сообщений: 2,685
Вес репутации: 4859/106 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Pasha_Bi
при традиционном подходе это не задача компилятора, это задача линкера. однако сходу нашел, что в IAR есть костыль, который позволяет сделать выравнивание данных. https://www.iar.com/contentassets/e2.../example-9.pdf наверное как-то так. Код:
#pragma pack(1024)//alinment 1024 bytes uint8_t A[234]; #pragma pack() //default aligment |
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/52 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Спасибо за ответ, но аргумент у #pragma pack() только до 128 проходит компиляцию (а в описании на #pragma pack() ...4, 8, 16).
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: 12.07.2012
Возраст: 34
Сообщений: 2,685
Вес репутации: 4859/106 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
есть еще
Код:
#pragma data_alignment=<N> |
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/52 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я с этого и начал, выдает предупреждение "this kind of pragma may not used here" и массив не выровнен остается.
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 30.09.2008
Сообщений: 1,638
Вес репутации: 3789/99 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/52 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я попробую другими словами: Требуется разместить массив uint8_t A[] с адреса 0bXX...X100 0000 0000. Пока предлагаемые варианты или не компилируются или не выполняют такое размещение.
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Регистрация: 30.09.2008
Сообщений: 1,638
Вес репутации: 3789/99 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
в .xcf PHP код:
PHP код:
|
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 46
Сообщений: 328
Вес репутации: 640/52 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Спасибо, в принципе я в первом своем сообщении:
Код:
uint8_t A[234] @ 0x20000000; |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Регистрация: 30.09.2008
Сообщений: 1,638
Вес репутации: 3789/99 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Код:
#pragma data_alignment = 2048 __root uint8_t Arr[1024]; Либо где-то в свойствах проекта --no_var_align подставляется |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Регистрация: 12.07.2012
Возраст: 34
Сообщений: 2,685
Вес репутации: 4859/106 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
pal1222@yandex.ru
Это же, слава богу, не gcc, в IAR файл управления линкера простой - который знают 3 калеки. |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Регистрация: 30.09.2008
Сообщений: 1,638
Вес репутации: 3789/99 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
![]() "кансолька, и ниипёт... ©" |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чем/как отлаживать код написаный на Си в WinAVR | Yokel | Микроконтроллеры других производителей | 49 | 30.09.2014 09:48 |
что за зверь - Скатерограмма | Edua | Общетехнические вопросы | 17 | 01.03.2013 23:33 |
Присоветуйте тип и способ управления MOSFETом "верхнего" плеча | dr_Sash | Источники питания и силовая электроника | 37 | 08.09.2012 18:50 |
как в си хайтековском объявить массив и сказать чтобы он лежал на границе килобайта? | Sergey | Продукция MICROCHIP | 1 | 22.05.2007 17:22 |