|
|
 |
Ответов
|
Jul 7 2018, 13:46
|

Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126

|
Три способа: 1) Сделать в линкере секцию и через #pragma section объявлять массив 2) Так же как вы написали : char Buffer[1024] __attribute__((at(0x38800000))); 3) char *Buffer=(char*)0x38000000; Обращаться Buffer[i]=j;
Сообщение отредактировал IgorKossak - Jul 12 2018, 06:06
Причина редактирования: бездумное цитирование
|
|
|
|
|
Jul 8 2018, 13:04
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 4-09-10
Пользователь №: 59 282

|
Цитата(aaarrr @ Jul 7 2018, 19:01)  Ну, вся работа с регистрами периферии так строится - ничего же  Другое дело, что при таком подходе следует спрятать от линкера тот диапазон адресов, где происходит ручное распределение. А если так, то проще уж сразу определить отдельную секцию. Так как всё таки записать эту секцию для массива в IRAM2 например int Arr [1024]? С началом по конкретному адресу.
Сообщение отредактировал quandr - Jul 8 2018, 13:08
|
|
|
|
|
Jul 8 2018, 15:42
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 4-09-10
Пользователь №: 59 282

|
Цитата(Forger @ Jul 8 2018, 17:08)  Там только регион указан, а мне по адресу нужно.
|
|
|
|
|
Jul 9 2018, 03:26
|

Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126

|
Цитата(Forger @ Jul 8 2018, 17:08)  Эх, совсем молодежь обленела .... http://www.keil.com/support/man/docs/armli...62066000571.htmИмхо, вместо размещения объектов по конкретному адресу, лучше использовать размещение в секциях, а размещение самих секций делать в соотв. scatter файле (скрипт линкера). Выше я дал пример (который почему-то все проигнорировали), что размещение в секции - ещё не гарантирует фактического туда попадания. Поэтому размещение по конкретному адресу - способ надёжнее
|
|
|
|
Сообщений в этой теме
quandr Массив по заданному адресу MDK-ARM (Keil) Jul 7 2018, 12:09   Arlleex Цитата(aaarrr @ Jul 7 2018, 19:01) Ну, вс... Jul 7 2018, 16:41   KRS Цитата(aaarrr @ Jul 7 2018, 19:01) Ну, вс... Jul 8 2018, 08:39       quandr Цитата(Forger @ Jul 8 2018, 19:08) Эх, со... Jul 8 2018, 16:40        Forger Цитата(quandr @ Jul 8 2018, 19:40) Если б... Jul 8 2018, 16:45        Forger Цитата(__inline__ @ Jul 9 2018, 06:26) Вы... Jul 9 2018, 06:20          __inline__ Цитата(Forger @ Jul 9 2018, 07:34) Не зас... Jul 9 2018, 13:22           Forger Цитата(__inline__ @ Jul 9 2018, 16:22) Ра... Jul 9 2018, 13:26            __inline__ Цитата(Forger @ Jul 9 2018, 14:26) Дык, э... Jul 9 2018, 13:28             Forger Цитата(__inline__ @ Jul 9 2018, 16:28) Ва... Jul 9 2018, 13:38 quandr Цитата(__inline__ @ Jul 7 2018, 16:46) Тр... Jul 8 2018, 02:22 k155la3 В файле линкера организовать сегмент и при деклара... Jul 7 2018, 15:41 haker_fox QUOTE (k155la3 @ Jul 7 2018, 23:41) В фай... Jul 8 2018, 00:35 pnp_mechanic Можно так.
const uint16_t NAME [] __attribute__(... Jul 7 2018, 20:05 __inline__ Объявил переменную в секции SRAM3:
Кодu8 AudioBuff... Jul 8 2018, 12:50 aaarrr Цитата(__inline__ @ Jul 8 2018, 15:50) Чт... Jul 9 2018, 06:21 __inline__ ок, попробую разобраться Jul 9 2018, 09:36 __inline__ Продолжая о скаттерах...
Понадобилось мне сделать... Jul 16 2018, 05:26 Forger Цитата(__inline__ @ Jul 16 2018, 08:26) П... Jul 16 2018, 07:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|