Перейти к содержанию
    

CodeBlocks - неведомые ошибки

Команда вроде ARM-овская, а регистр - x86.
все нормально - код inline asm компилится под неродную архитектуру.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все нормально - код inline asm компилится под неродную архитектуру.

Файл-то с расширением "s" - это нативный asm, а не inline asm. Или думаете - там компиляция си через промежуточный asm и трансляцию его затем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Или думаете - там компиляция си через промежуточный asm и трансляцию его затем?
Я не думаю - старые gcc делали именно так. Полагаю, что и новые тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А без них я даже не смог получить те ошибки, о которых ТС спрашивает...

 

И сначала он явно пытался собрать АРМ проект компилятором для x86, хотя CodeBlocks упирался и говорил:

хочу compiler="armnoneeabigcc" !!! :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Компилятор все же подключился) И начал компилировать. Возник другой вопрос:

КАК библиотеку Libopencm3 подключить к своему проекту? И что с ней вообще делать?

ЕЕ собрать нужно сначала? Построить? Как ее заcтавить работать в CODE BLOCK??

Пробовалось так:

1)файлы из папки include библиотеки скопировать в папку include компилятора

2)Тоже проделать с папкой lib.

 

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

 

Компилятор все же подключился) И начал компилировать. Возник другой вопрос:

КАК библиотеку 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

 

ссылка

библиотеки

projectRTE.rar

Изменено пользователем Ekka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

C:\Users\F1DB~1\AppData\Local\Temp\ccKP6878.s|67|Error: selected processor does not support requested special purpose register -- `mrs r3,ipsr'|

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Но этот проект все равно не але...

Что с ним... :cranky:

 

:cranky: :cranky: :cranky:

 

Может,я пропускаю какой-то шаг?... :smile3046: :smile3046: :smile3046:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал собрать ваш проект:

нагромождение файлов и библиотек чудовищное...

 

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

NVIC_USART1_IRQ

NVIC_TIM7_IRQ

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал собрать ваш проект:

нагромождение файлов и библиотек чудовищное...

 

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

NVIC_USART1_IRQ

NVIC_TIM7_IRQ

 

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

 

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

 

Удалось исправить предыдущие ошибки...

Кто-то знает, что это?

Что за несоответствие?

 

||=== 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)) ===|

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

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

libopencm3_build

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1)файлы из папки include библиотеки скопировать в папку include компилятора

2)Тоже проделать с папкой lib.

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

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

 

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

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

 

Кто-то знает, что это?

 

||=== 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

 

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

 

 

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

 

 

Да...на этот счет уже просмотрено... а где эту конфигурацию смотреть? В Makefile? или во флагах компилятора?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за несоответствие?

||=== 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 не применялся. Ессно, это работать не будет, поэтому ошибка.

 

а где эту конфигурацию смотреть? В 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

з.ы. компилятор последний: 4.9.3

 

не могу найти установочник этого компилятора

Изменено пользователем IgorKossak
бездумное цитирование

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не могу найти установочник этого компилятора

Официальный сайт: GNU Arm Embedded Toolchain

Название у него другое: gcc-arm-none-eabi-7-2017-q4-major

а версию при компиляции выдал 4.9.3

 

ваш же был ненамного старее (4.8.4), разве с ним не получается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...