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

ST Bluenrg-232 собрать проект

Всем добрый день!

Пытаюсь откомпилировать проект для ST BlueNRG232 в Keil 5.38.  раньше работало в более старом Keil

1) Получаю ошибку  "error: L6236E: No section matches selector - no section to be FIRST/LAST."
2) На сколько понимаю, нет startup файла
3) Файл startup_BlueNrg_LP.c есть.  Смущает, что _LP , это же другой чип. 
4) Может быть, нужен ещё файл для ядра M0 ? Вроде  startup_ARMCM0plus.s  ?
5) Не понимаю, что означает эта строчка в начале таблицы векторов
       {.__ptr = _INITIAL_SP},   /* Stack address */
   Это адрес начала таблицы? 
     Не понимаю, как он задан. 
 

Весь проект
https://disk.yandex.ru/d/jrfWQpratwBIVg

 

Заранее спасибо тому кто поможет !
 

1.jpg

2.jpg

3.jpg

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


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


 

7 minutes ago, Arlleex said:

scatter-файла нету, видимо.

Есть. Тот, который сделал сам keil.

4.jpg

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


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

32 minutes ago, MiklPolikov said:

1) Получаю ошибку  "error: L6236E: No section matches selector - no section to be FIRST/LAST."

какой компилятор (версия)?

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


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

21 минуту назад, MiklPolikov сказал:

Есть. Тот, который сделал сам keil.

Его явно недостаточно, на что намекает

SECTION(".intvec")

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


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

13 minutes ago, MiklPolikov said:

default 6

какая именно? там одно время была капризная версия именно с ошибкой с таким кодом, самая свежая 6.20.1

впрочем, по bluenrg ничего не скажу, не сталкивался, судя по ошибке не хватает стартап секции

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

 

 

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


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

Там видно все итак, без создания промежуточных проектов... Нет RESET-секции, поэтому я и пишу, что где-то потерялся предполагаемый автором кода скрипт линкера, либо не прикладывался к проекту вовсе.

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


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

40 minutes ago, Arlleex said:

Нет RESET-секции, поэтому я и пишу, что где-то потерялся предполагаемый автором кода скрипт линкера, либо не прикладывался к проекту вовсе.

так я и пишу как быстро восстановить - слить и другого рабочего проекта

пока мы тут пишем, уже сто раз можно было это сделать )

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


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

Так вот нет рабочего проекта под этот процессор.

Напишите подробнее пожалуйста, что нужно взять и куда перенести.

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


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

Если в том проекте только одна явно заданная секция (.intvec), то, для начала, поменять это имя на RESET (либо наоборот, в scatter поменять RESET на .intvec)... Потом указать символы для определения регионов памяти стека и кучи, как показано тут.

Но, все-таки, мы не бабки-ванги, скаттер все-таки придется найти, а по крупицам восстанавливать - такое себе занятие.

Если там заранее известно, что скаттер нафиг особо не нужен - то выкинуть все эти сишные стартап-прибамбасы и сделать (взять если есть готовый) ассемберный, кои стандартом де-факто всегда шли в комплекте DFP к нужному семейству МК.

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


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

1 hour ago, MiklPolikov said:

Так вот нет рабочего проекта под этот процессор.

Создать новый проект средствами keil

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


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

6 hours ago, Forger said:

Создать новый проект средствами keil

Конечно я попробовал так сделать.

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


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

7 hours ago, Arlleex said:

Если в том проекте только одна явно заданная секция (.intvec), то, для начала, поменять это имя на RESET

Спасибо, так ошибка исчезла!

Говорит, что не определено вот это

#define _INITIAL_SP        (void(*)(void))&Image$$ARM_LIB_STACK$$ZI$$Limit  // Stack address 

 

Как понимаю, это адрес стека.
Откуда вообще должно браться это значение?
Я могу просто заменить цифрой ? Что нужно задать, что бы работало ?
 

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


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

Вам необходимо нормальный скаттер-файл в проекте иметь.

https://developer.arm.com/documentation/100070/0612/scatter-loading-features/the-scatter-loading-mechanism/placing-the-stack-and-heap-with-a-scatter-file

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


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

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

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

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

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

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

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

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

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

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