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

 
 
 
Reply to this topicStart new topic
> Keil 5.23 ошибка L6971E, Нужна подсказка
smk
сообщение May 18 2017, 07:13
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 210
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Здравствуйте!
Платка STM32F746-discovery. Подключил GUIBuilder, создал проект по кейловскому хелпу. Получил вот такую ошибку. Никогда раньше не сталкивался с таким. Прошу подсказать что это значит и как лечится? Спасибо.

Код
.\Objects\STM32F746NGH6-DISCOVERY.axf: Error: L6971E: gui_x_rte.o(.data) type RW incompatible with lcdconf.o(.ARM.__AT_0x20000000) type ZI in er RW_IRAM2.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Forger
сообщение May 18 2017, 08:07
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 608
Регистрация: 22-02-05
Пользователь №: 2 831



Гугль по коду ошибки дает это:
Код
L6971E
<objname>(<secname>) type <type> incompatible with <prevobj>(<prevname>) type <prevtype> in er <ername>.
You might see this message when placing __at sections with a scatter file. For example, the following code in main.c and the related scatter file gives this error:
int variable __attribute__((at(0x200000)));
LR1 0x0000 0x20000
{
    ER1 0x0 0x2000
    {
        *(+RO)
    }
    ER2 0x8000 0x2000
    {
        main.o
    }
    RAM 0x200000 (0x1FF00-0x2000)
    {
        *(+RW, +ZI)
    }
}
The variable has the type ZI, and the linker attempts to place it at address 0x200000. However, this address is reserved for RW sections by the scatter file. This produces the error:
Error: L6971E: stdio_streams.o(.data) type RW incompatible with main.o(.ARM.__AT_0x00200000) type ZI in er RAM.
To fix this change the address in your source code, for example:
int variable __attribute__((at(0x210000)));


Искал по коду ошибки тут.
Go to the top of the page
 
+Quote Post
romas2010
сообщение May 20 2017, 08:41
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 25-11-11
Пользователь №: 68 515



Цитата(smk @ May 18 2017, 10:13) *
Здравствуйте!
Платка STM32F746-discovery. Подключил GUIBuilder, создал проект по кейловскому хелпу. Получил вот такую ошибку. Никогда раньше не сталкивался с таким. Прошу подсказать что это значит и как лечится? Спасибо.

Код
.\Objects\STM32F746NGH6-DISCOVERY.axf: Error: L6971E: gui_x_rte.o(.data) type RW incompatible with lcdconf.o(.ARM.__AT_0x20000000) type ZI in er RW_IRAM2.


Компилятор Keil не разрешает размещать данные в ОЗУ таким образом через __attribute,типа char lcdconf[20] __attribute(at(0x20000000))).....
видимо прихоть его разработчиков...Обхожу данный нюанс при помощи ассемблера

Код
               AREA   |.ARM.__AT_0x2000000|,DATA,READWRITE
                                  EXPORT lcdconf
lcdconf     space 20

в h-файле прописываете
Код
extern char lcdconf[20];


Сообщение отредактировал romas2010 - May 20 2017, 08:46
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th July 2017 - 08:58
Рейтинг@Mail.ru


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