MiklPolikov 0 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба Всем добрый день! Пытаюсь откомпилировать проект для 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 Заранее спасибо тому кто поможет ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба scatter-файла нету, видимо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба 7 minutes ago, Arlleex said: scatter-файла нету, видимо. Есть. Тот, который сделал сам keil. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба 32 minutes ago, MiklPolikov said: 1) Получаю ошибку "error: L6236E: No section matches selector - no section to be FIRST/LAST." какой компилятор (версия)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба Just now, Forger said: какой компилятор (версия)? default 6 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба 21 минуту назад, MiklPolikov сказал: Есть. Тот, который сделал сам keil. Его явно недостаточно, на что намекает SECTION(".intvec") Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба 13 minutes ago, MiklPolikov said: default 6 какая именно? там одно время была капризная версия именно с ошибкой с таким кодом, самая свежая 6.20.1 впрочем, по bluenrg ничего не скажу, не сталкивался, судя по ошибке не хватает стартап секции как вариант - создайте новый пустой проект под этот камень в другой папке, но чтобы он собирался, и уже по аналогии см. чем он отличается от вашего проекта Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба Там видно все итак, без создания промежуточных проектов... Нет RESET-секции, поэтому я и пишу, что где-то потерялся предполагаемый автором кода скрипт линкера, либо не прикладывался к проекту вовсе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба 40 minutes ago, Arlleex said: Нет RESET-секции, поэтому я и пишу, что где-то потерялся предполагаемый автором кода скрипт линкера, либо не прикладывался к проекту вовсе. так я и пишу как быстро восстановить - слить и другого рабочего проекта пока мы тут пишем, уже сто раз можно было это сделать ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба Так вот нет рабочего проекта под этот процессор. Напишите подробнее пожалуйста, что нужно взять и куда перенести. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба Если в том проекте только одна явно заданная секция (.intvec), то, для начала, поменять это имя на RESET (либо наоборот, в scatter поменять RESET на .intvec)... Потом указать символы для определения регионов памяти стека и кучи, как показано тут. Но, все-таки, мы не бабки-ванги, скаттер все-таки придется найти, а по крупицам восстанавливать - такое себе занятие. Если там заранее известно, что скаттер нафиг особо не нужен - то выкинуть все эти сишные стартап-прибамбасы и сделать (взять если есть готовый) ассемберный, кои стандартом де-факто всегда шли в комплекте DFP к нужному семейству МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 26 сентября, 2023 Опубликовано 26 сентября, 2023 · Жалоба 1 hour ago, MiklPolikov said: Так вот нет рабочего проекта под этот процессор. Создать новый проект средствами keil Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 27 сентября, 2023 Опубликовано 27 сентября, 2023 · Жалоба 6 hours ago, Forger said: Создать новый проект средствами keil Конечно я попробовал так сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 27 сентября, 2023 Опубликовано 27 сентября, 2023 · Жалоба 7 hours ago, Arlleex said: Если в том проекте только одна явно заданная секция (.intvec), то, для начала, поменять это имя на RESET Спасибо, так ошибка исчезла! Говорит, что не определено вот это #define _INITIAL_SP (void(*)(void))&Image$$ARM_LIB_STACK$$ZI$$Limit // Stack address Как понимаю, это адрес стека. Откуда вообще должно браться это значение? Я могу просто заменить цифрой ? Что нужно задать, что бы работало ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 27 сентября, 2023 Опубликовано 27 сентября, 2023 · Жалоба Вам необходимо нормальный скаттер-файл в проекте иметь. https://developer.arm.com/documentation/100070/0612/scatter-loading-features/the-scatter-loading-mechanism/placing-the-stack-and-heap-with-a-scatter-file Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться