реклама на сайте
подробности

 
 
> Keil __attribute((at(address))
ISK2010
сообщение Oct 28 2015, 14:59
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 205
Регистрация: 21-09-10
Из: г.Зеленоград
Пользователь №: 59 631



Добрый день!

Пытаюсь сделать так:

Код
__IO uint16_t VREFINT_CAL __attribute((at( 0x1FFF75AA ))); //Это калибровочная константа, которая зашита на заводе ST


И получаю ошибку:"BatTest Configuration/\.axf: Error: L6438E: __AT section main.o(.ARM.__AT_0x1FFF75AA) address 0x1fff75aa must be at least 4 byte aligned.".

Можно ли как-то в Keil с помощью атрибута at расположить переменную по не выровненному по 4байта адресу?

Сейчас использую #define VREFINT_CAL (*(uint16_t*)(0x1FFF75AA)).

Сообщение отредактировал IgorKossak - Oct 28 2015, 18:33
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k000858
сообщение Nov 6 2015, 04:19
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



а как такое же сделать на GCC?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 6 2015, 05:37
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(k000858 @ Nov 6 2015, 07:19) *
а как такое же сделать на GCC?

Код
__attribute__((section(".hw_settings")))
extern hw_settings const volatile HW_settings =
{
    1,
    F_OSC,
    {

В скрипте линкера добавить выходную секцию в нужное место выходной секции .text или, при необходимости, завести новый регион памяти, куда и положить эту секцию:
Код
MEMORY
{
    ........
    HW_SETTINGS(r)      : ORIGIN = 0x08000000 + 3K,         LENGTH =  1K
    .........
}

SECTIONS
{
    ......
    .hw_settings :
    {
        KEEP(*(.hw_settings*))
    } > HW_SETTINGS


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 00:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016