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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> CodeBlocks - неведомые ошибки
Сергей Борщ
сообщение Feb 15 2018, 08:38
Сообщение #16


Гуру
******

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



QUOTE (jcxz @ Feb 14 2018, 23:29) *
Команда вроде ARM-овская, а регистр - x86.
все нормально - код inline asm компилится под неродную архитектуру.


--------------------
На любой вопрос даю любой ответ
"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
jcxz
сообщение Feb 15 2018, 09:10
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 4 108
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Сергей Борщ @ Feb 15 2018, 10:38) *
все нормально - код inline asm компилится под неродную архитектуру.

Файл-то с расширением "s" - это нативный asm, а не inline asm. Или думаете - там компиляция си через промежуточный asm и трансляцию его затем?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 15 2018, 10:42
Сообщение #18


Гуру
******

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



QUOTE (jcxz @ Feb 15 2018, 11:10) *
Или думаете - там компиляция си через промежуточный asm и трансляцию его затем?
Я не думаю - старые gcc делали именно так. Полагаю, что и новые тоже.


--------------------
На любой вопрос даю любой ответ
"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
Baser
сообщение Feb 15 2018, 11:31
Сообщение #19


Просто Che
*****

Группа: Свой
Сообщений: 1 413
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



ТС даже не смог выложить нужные файлы проекта, ибо в том, что он выложил, включая архив на 100Мег с громадной коллекцией всяческого софта и демо проектов, я не нашел папки libremodbus c нужными библиотеками.
А без них я даже не смог получить те ошибки, о которых ТС спрашивает...

И сначала он явно пытался собрать АРМ проект компилятором для x86, хотя CodeBlocks упирался и говорил:
хочу compiler="armnoneeabigcc" !!! biggrin.gif
Go to the top of the page
 
+Quote Post
Ekka
сообщение Вчера, 06:22
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Компилятор все же подключился) И начал компилировать. Возник другой вопрос:
КАК библиотеку Libopencm3 подключить к своему проекту? И что с ней вообще делать?
ЕЕ собрать нужно сначала? Построить? Как ее заcтавить работать в CODE BLOCK??
Пробовалось так:
1)файлы из папки include библиотеки скопировать в папку include компилятора
2)Тоже проделать с папкой lib.

Но при попытке собрать проект - файл nvic.h для stm32f4 должен создаваться на этапе компиляции, а он не создается(

Цитата(Ekka @ Feb 20 2018, 07:16) *
Компилятор все же подключился) И начал компилировать. Возник другой вопрос:
КАК библиотеку Libopencm3 подключить к своему проекту? И что с ней вообще делать?
ЕЕ собрать нужно сначала? Построить? Как ее заcтавить работать в CODE BLOCK??
Пробовалось так:
1)файлы из папки include библиотеки скопировать в папку include компилятора
2)Тоже проделать с папкой lib.

Но при попытке собрать проект - файл nvic.h для stm32f4 должен создаваться на этапе компиляции, а он не создается(


И да... мои попытки заставить проект собираться без указания нужного компилятора - лажа... простите, вродь разобралсё)
В проекте не было в стандартных нужного мне компилятора, пришлось скопировать настройки GNU GCC for ARM и в поля ексешников добавить все для arm-none-eabi-gcc.
Все подключилось.

Файлы библиотеки нужно было добавить в папки компилятора, ибо путь до них он не находил ни при каких раскладах.
Теперь находит.
Но в топиках по темам liboprncm3 обнаружилось, что библиотеку сначала нужно...эм..СОБРАТЬ отдельно?
файлы .a, файлы nvic.h для stm-ов, их нет в библиотеке и некоторые форумчане говорят, что эти файлы создаются при компиляции.
Как правильно подключить библиотеку?

И да... вот те файлы, которых недостает
Если еще какие-то попросит, говорите, может, я не все перекидываю, у меня фырчит только на libopencm3 и matiec

ссылка
библиотеки

Сообщение отредактировал Ekka - Вчера, 06:50
Прикрепленные файлы
Прикрепленный файл  projectRTE.rar ( 264.27 килобайт ) Кол-во скачиваний: 5
 
Go to the top of the page
 
+Quote Post
Ekka
сообщение Вчера, 08:44
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Библиотека собралась через консоль...) все файлы создались... Но.. ОПЯТЬ...что это за штука(

C:\Users\F1DB~1\AppData\Local\Temp\ccKP6878.s|67|Error: selected processor does not support requested special purpose register -- `mrs r3,ipsr'|
Go to the top of the page
 
+Quote Post
Ekka
сообщение Вчера, 13:04
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Нужно в настройках компилятора указать [mcpu=cotrex-m3]...
Но этот проект все равно не але...
Что с ним... cranky.gif

cranky.gif cranky.gif cranky.gif

Может,я пропускаю какой-то шаг?... smile3046.gif smile3046.gif smile3046.gif
Go to the top of the page
 
+Quote Post
Baser
сообщение Вчера, 18:22
Сообщение #23


Просто Che
*****

Группа: Свой
Сообщений: 1 413
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Попробовал собрать ваш проект:
нагромождение файлов и библиотек чудовищное...

Так и не смог найти файлов CMSIS, где определяются номера векторов прерываний:
NVIC_USART1_IRQ
NVIC_TIM7_IRQ

До ваших ошибок добраться так и не получилось...

Применять open source "навалом", а не "из коробки" - это не для слабых духом... smile3046.gif
Go to the top of the page
 
+Quote Post
Ekka
сообщение Сегодня, 11:51
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Цитата(Baser @ Feb 20 2018, 19:22) *
Попробовал собрать ваш проект:
нагромождение файлов и библиотек чудовищное...

Так и не смог найти файлов CMSIS, где определяются номера векторов прерываний:
NVIC_USART1_IRQ
NVIC_TIM7_IRQ

До ваших ошибок добраться так и не получилось...

Применять open source "навалом", а не "из коробки" - это не для слабых духом... smile3046.gif


Удалось исправить предыдущие ошибки...
Кто-то знает, что это?
Что за несоответствие?

Код
||=== Build: Debug in yaplc_runtime (compiler: GNU ARM GCC Compiler) ===|
||error: bin\Debug\yaplc_runtime.elf uses VFP register arguments, c:/program files/gnuarm/bin/../lib/gcc/arm-none-eabi/4.8.4\libgcc.a(bpabi.o) does not|
||error: bin\Debug\yaplc_runtime.elf uses VFP register arguments, c:/program files/gnuarm/bin/../lib/gcc/arm-none-eabi/4.8.4\libgcc.a(_divdi3.o) does not|
||error: bin\Debug\yaplc_runtime.elf uses VFP register arguments, c:/program files/gnuarm/bin/../lib/gcc/arm-none-eabi/4.8.4\libgcc.a(_udivdi3.o) does not|
||error: ld returned 1 exit status|
||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


Go to the top of the page
 
+Quote Post
Ekka
сообщение Сегодня, 13:09
Сообщение #25


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Это ошибки, связанные с компилятором?...


А еще, Baser, Вы говорили, что у Вас нет файла с NVIC-ками... вот архив с библиотекой, где он есть
libopencm3_build


Go to the top of the page
 
+Quote Post
Baser
сообщение Сегодня, 13:17
Сообщение #26


Просто Che
*****

Группа: Свой
Сообщений: 1 413
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Ekka @ Feb 20 2018, 08:22) *
1)файлы из папки include библиотеки скопировать в папку include компилятора
2)Тоже проделать с папкой lib.

Это плохое решение. Так же как и правка файлов проекта с указанием полного пути для включаемых файлов.
В свойствах проекта есть спец. окно, куда можно добавить пути к папкам, где компилятору дополнительно нужно искать требуемые файлы.

Цитата
Но при попытке собрать проект - файл nvic.h для stm32f4 должен создаваться на этапе компиляции, а он не создается(

На этапе компиляции файлы не создаются. Этого файла в библиотеках просто нет, он должен идти от производителя, т.е. STM (Как я понял, вы его нашли)

Цитата(Ekka @ Feb 21 2018, 13:51) *
Кто-то знает, что это?

[code]||=== Build: Debug in yaplc_runtime (compiler: GNU ARM GCC Compiler) ===|
||error: bin\Debug\yaplc_runtime.elf uses VFP register arguments, c:/program files/gnuarm/bin/../lib/gcc/arm-none-eabi/4.8.4\libgcc.a(bpabi.o) does not|

Вопросов про "uses VFP register arguments" в интернете много, говорят, что нужно смотреть конфигурацию FPU
Go to the top of the page
 
+Quote Post
Ekka
сообщение Сегодня, 13:21
Сообщение #27


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Цитата(Baser @ Feb 21 2018, 14:17) *
Это плохое решение. Так же как и правка файлов проекта с указанием полного пути для включаемых файлов.
В свойствах проекта есть спец. окно, куда можно добавить пути к папкам, где компилятору дополнительно нужно искать требуемые файлы.


На этапе компиляции файлы не создаются. Этого файла в библиотеках просто нет, он должен идти от производителя, т.е. STM (Как я понял, вы его нашли)


Вопросов про "uses VFP register arguments" в интернете много, говорят, что нужно смотреть конфигурацию FPU



Да...на этот счет уже просмотрено... а где эту конфигурацию смотреть? В Makefile? или во флагах компилятора?
Go to the top of the page
 
+Quote Post
Baser
сообщение Сегодня, 13:37
Сообщение #28


Просто Che
*****

Группа: Свой
Сообщений: 1 413
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Ekka @ Feb 21 2018, 13:51) *
Что за несоответствие?
Код
||=== Build: Debug in yaplc_runtime (compiler: GNU ARM GCC Compiler) ===|
||error: bin\Debug\yaplc_runtime.elf uses VFP register arguments, c:/program files/gnuarm/bin/../lib/gcc/arm-none-eabi/4.8.4\libgcc.a(bpabi.o) does not|

Эта ошибка говорит о том, что объектные модули проекта скомпилированы с применением аппаратного модуля FPU,
а библиотеки попытались прицепить, где модуль FPU не применялся. Ессно, это работать не будет, поэтому ошибка.

Цитата(Ekka @ Feb 21 2018, 15:21) *
а где эту конфигурацию смотреть? В Makefile? или во флагах компилятора?

Ошибка была в опциях линкера в файле проекта yaplc-runtime.cbp. Если опции компилятора были все на месте:
Код
<Compiler>
    <Add option="-mthumb" />
    <Add option="-mcpu=cortex-m4" />
    <Add option="-mfloat-abi=hard" />
    <Add option="-mfpu=fpv4-sp-d16" />

То в опциях линкера отсутствовала последняя опция. Добавьте её в секцию линкера и проект соберется:
Код
-------------- Build: Debug in yaplc_runtime (compiler: GNU GCC Compiler for ARM)---------------

Output file is bin\Debug\yaplc_runtime.elf with size 400.05 KB
Running project post-build steps
arm-none-eabi-size bin\Debug\yaplc_runtime.elf
   text       data        bss        dec        hex    filename
  22392         28       3444      25864       6508    bin\Debug\yaplc_runtime.elf
Process terminated with status 0 (0 minute(s), 10 second(s))
0 error(s), 0 warning(s) (0 minute(s), 10 second(s))


з.ы. компилятор последний: 4.9.3
Go to the top of the page
 
+Quote Post
Baser
сообщение Сегодня, 17:19
Сообщение #29


Просто Che
*****

Группа: Свой
Сообщений: 1 413
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Отредактировал предыдущее сообщение
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st February 2018 - 22:50
Рейтинг@Mail.ru


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