tea1975 0 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба Добрый день, гуру и другие заинтересованные люди. Решил тут осваивать чудо чудное микроконтроллеры аки зовутся STM32. Да не просто решил, а даже начал.. Прикупил плату NUCLEO-L476RG. Помигал даже светодиодиком в Mbed по описанию на Хабре. Но этож не наш метод. Гуру рекомендуют Кейл и мы их будем слушаться. Сформировал в Кубе проект по уроку на одном из ресурсов. Из Куба сразу запускаю его в Кейле, добавляю строчки мигалки в main.c и F7 волшебную давлю. А линковщик Кейла не хочет новичка на лоховской задачке принимать, дескать достали вы тут своими светодиодами мигать. Нет чтобы сразу БПФ начинать. Ну вобщем выдал он : Blink_hal\Blink_hal.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST. Чукча не дурак, чукча гугл знает и находит вот такую информацию. В которой как бы намекают, что в стартуп файле нет строчек: AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler DCD HardFault_Handler ; Hard Fault Handler DCD MemManage_Handler ; MPU Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler DCD 0 ; Reserved Дальше чукча-новичок смотрит в файл C:\Users\Евгений\Documents\Test\Blink_hal\MDK-ARM\startup_stm32l476xx.s и они там есть.. Чукча несчастен, светодиоды простаивают.. А теперь вопрос. Что не так в этой жизни с Кейлом? На всякий случай приложу папку Src и файл startup_stm32l476xx.s проекта, вдруг люди добрые возьмутся помочь чукче освоить Кейл Src.rar startup_stm32l476xx.s Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба А стартап ваш в проект добавлен? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tea1975 0 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба Вы имеете ввиду так как на вложенном скрине? Если делаю так как на скрине, то результат ещё хуже: *** Using Compiler 'V5.06 update 5 (build 528)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'Blink_hal' linking... Blink_hal\Blink_hal.axf: Error: L6200E: Symbol SystemInit multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol __asm___18_system_stm32l4xx_c_5d646a67____REV16 multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol __asm___18_system_stm32l4xx_c_5d646a67____REVSH multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol __asm___18_system_stm32l4xx_c_5d646a67____RRX multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol AHBPrescTable multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol APBPrescTable multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol MSIRangeTable multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol SystemCoreClock multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol SystemCoreClockUpdate multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 9 error messages. "Blink_hal\Blink_hal.axf" - 9 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:00 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба Здесь уже system_... в проекте продублировался. Вы же видите, какие файлы включены в проект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tea1975 0 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба чудеса.. ещё раз попробовал поставить галки как на скрине и всё вышло норм Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tea1975 0 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба 10 minutes ago, ViKo said: Здесь уже system_... в проекте продублировался. Вы же видите, какие файлы включены в проект. Ага увидел, только не пойму как так получилось. Попробую заново с нуля. Надо отладить процедуру создания столь минималистского проекта.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба Это с Кубом-то - минималистский проект? Я его боюсь, как огня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tea1975 0 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба Спасибо за помощь, так и не понял какого художника Репина систем появляется и в Device и в CMSIS, но грохнул его в последнем и откомпилился без ошибок и предупреждений. Не ожидал таких граблей для начинающих юзеров. Представляюю какие дальше ёлки падать под ноги будут. Может на Атолик пока не поздно сбежать, и честность не пострадает 25 minutes ago, ViKo said: Это с Кубом-то - минималистский проект? Я его боюсь, как огня. Это да, пугает зачем столько лишнего то куб в папки проекта наваливает, например хидеры на все камни L4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба 6 hours ago, tea1975 said: зачем столько лишнего то куб в папки проекта наваливает Минималистичный проект для начинающего должен делаться без Куба и содержать всего пару файлов: стартап для выбранного камня и мэйн с вечным циклом while (1) {}. Только собрав такой проект самостоятельно вручную с нуля стоит переходить к миганию светодиодом. Вы же пропустили этот нулевой уровень познания и решили перейти сразу к первому. Да ещё и с Кубом. На время отложите его в сторону. Научитесь самостоятельно создавать простые проекты без него. В вашем случае он подобен инженерному калькулятору или ноутбуку в руках первоклассника, ещё не умеющего читать, писать и считать. На этом этапе нужны прописи, тетрадки и ручки с карандашами, а не ноутбуки/калькуляторы. С ними ни писать, ни читать, ни считать не научишься. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 29 ноября, 2018 Опубликовано 29 ноября, 2018 · Жалоба 19 hours ago, tea1975 said: Спасибо за помощь, так и не понял какого художника Репина систем появляется и в Device и в CMSIS, но грохнул его в последнем и откомпилился без ошибок и предупреждений. Видимо, вариант cmsis для тех, кто не хочет использовать HAL. Почему эта менюшка не предупреждает "так всё сломается"... Ну, увы... В embedded есть очень много способов выстрелить в ногу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 29 ноября, 2018 Опубликовано 29 ноября, 2018 · Жалоба Совет Darth Vader очень дельный, кстати. Огребете много проблем, если проект будет зависимым от расположения папок этих самых CMSIS-ных генераторов... Я храню файлы проекта в папке проекта. И никаких зависимостей, никаких генераторов среды, никаких кубов и HAL-ов. Единственное - бывает, пользуюсь SPL. Структура проекта примерно такая: В директории проекта находятся такие же папки, с теми же названиями. Вот, например, что лежит в System: Тут в CMSIS: Все нужные заголовочные файлы CMSIS, а также основной заголовочный файл описания периферии, startup, и другие системные файлы можно найти в архиве DFP, который качается с st.com или keil.com. Я и называю это минималистичным проектом. Конечно, уменьшать можно до бесконечности - например, написав собственные заголовочные файлы описания регистров и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 29 ноября, 2018 Опубликовано 29 ноября, 2018 · Жалоба Танки HALа не боятся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 29 ноября, 2018 Опубликовано 29 ноября, 2018 · Жалоба В 28.11.2018 в 15:31, tea1975 сказал: Это да, пугает зачем столько лишнего то куб в папки проекта наваливает, например хидеры на все камни L4 В настройках проекта в Кубе можно задать варианты, все файлы Куба копировать или только нужные или ссылки на них. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 29 ноября, 2018 Опубликовано 29 ноября, 2018 · Жалоба Ды ну нафик. Я не HAL-а боюсь, а его кривокосости. При поломке железки на объекте куда лучше на себя пенять (когда сам написал весь код), нежели, покопавшись месяц в поисках проблемы, понять, что проблема в этих HAL-ах. Лучше свои написать. P.S. SPL - единственное мое исключение. Использую в основном для настройки периферии. Но запуск и ее обслуживание - регистровое с внимательным чтением RM. Ну или все на SPL, если проект совсем простой и не надо гнаться ни за чем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tea1975 0 30 ноября, 2018 Опубликовано 30 ноября, 2018 · Жалоба On 11/29/2018 at 12:47 AM, Darth Vader said: Вы же пропустили этот нулевой уровень познания и решили перейти сразу к первому. Да ещё и с Кубом. На время отложите его в сторону. Научитесь самостоятельно создавать простые проекты без него. Странная логика. Читая интернеты я так понял наоборот, что HAL и Куб созданы чуть ли не для ардуинщиков (слава богу в их ряды я не попал). И по сути у меня в итоге получилось. За пару дней по урокам с одного ресурса помигал светодиодом, нучился включать его при нажатой кнопке и выключать при отжатой, с прерываниями и без онных. Я конечно согласен, что делая это я не познаю регистровую структуру камня, но быстрый старт вроде бы состоялся. затык был только на названии темы, но теперь я знаю как его лечить. В лохматые годы я программировал немного АВРки в ИАРе на регистрах. Потому что не было ничего подобного ХАЛу. Но и не согласиться с вами не могу. Думаю, что поиграюсь с этими штучками типа облегчающими жизнь и прийду на голый CMSIS. Плавно, спускаясь через LL наверное. Плохо, что литературы на русском по архитектуре кортексов маловато, а с инглишом я дружу увы на уровне - по пьяни поболтать с тайцем в таиланде - полное понимание. Я знаю, щас закидаете советами, что в Embeded без знания английского ловить нефиг и т.д. Ну так уж сложилось. У меня это больше хобби таки. Попробовал параллельно работать и в MDK и в Атолик. Атолик выглядит интереснее, но понимаю, что Кейл то более для профи и наверно стоит сразу привыкать к правильному инструменту. Ещё вопрос к гуру. Нет ли описаний где-то как пользоваться дебагером в Кейле? Методом тыка осваивать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться