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

Добрый день, гуру и другие заинтересованные люди.

Решил тут осваивать чудо чудное микроконтроллеры  аки зовутся 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

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


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

Вы имеете ввиду так как на вложенном скрине?

Если делаю так как на скрине, то результат ещё хуже:

 

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

manage.png

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


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

Здесь уже system_... в проекте продублировался. Вы же видите, какие файлы включены в проект.

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


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

10 minutes ago, ViKo said:

Здесь уже system_... в проекте продублировался. Вы же видите, какие файлы включены в проект.

Ага увидел, только не пойму как так получилось.

Попробую заново с нуля. Надо отладить процедуру создания столь минималистского проекта.. 

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


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

Это с Кубом-то - минималистский проект? Я его боюсь, как огня. 

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


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

Спасибо за помощь, так и не понял какого художника Репина систем появляется и в Device и в CMSIS, но грохнул его в последнем и откомпилился без ошибок и предупреждений.

Не ожидал таких граблей для начинающих юзеров. Представляюю какие дальше ёлки падать под ноги будут. Может на Атолик пока не поздно сбежать, и честность не пострадает :blush:

25 minutes ago, ViKo said:

Это с Кубом-то - минималистский проект? Я его боюсь, как огня. 

Это да, пугает зачем столько лишнего то куб в папки проекта наваливает, например хидеры на все камни L4 :umnik2:

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


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

6 hours ago, tea1975 said:

зачем столько лишнего то куб в папки проекта наваливает

Минималистичный проект для начинающего должен делаться без Куба и содержать всего пару файлов: стартап для выбранного камня и мэйн с вечным циклом while (1) {}. Только собрав такой проект самостоятельно вручную с нуля стоит переходить к миганию светодиодом.

Вы же пропустили этот нулевой уровень познания и решили перейти сразу к первому. Да ещё и с Кубом. На время отложите его в сторону.

Научитесь самостоятельно создавать простые проекты без него. В вашем случае он подобен инженерному калькулятору или ноутбуку в руках первоклассника, ещё не умеющего читать, писать и считать. На этом этапе нужны прописи, тетрадки и ручки с карандашами, а не ноутбуки/калькуляторы. С ними ни писать, ни читать, ни считать не научишься.

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


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

19 hours ago, tea1975 said:

Спасибо за помощь, так и не понял какого художника Репина систем появляется и в Device и в CMSIS, но грохнул его в последнем и откомпилился без ошибок и предупреждений.

Видимо, вариант cmsis для тех, кто не хочет использовать HAL. Почему эта менюшка не предупреждает "так всё сломается"... Ну, увы... В embedded есть очень много способов выстрелить в ногу...

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


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

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

Я храню файлы проекта в папке проекта. И никаких зависимостей, никаких генераторов среды, никаких кубов и HAL-ов. Единственное - бывает, пользуюсь SPL.

Структура проекта примерно такая:

image.png.97bdaf5917d89e32885389385ed88d6b.png

 

В директории проекта находятся такие же папки, с теми же названиями. Вот, например, что лежит в System:

image.png.b9aea55c28f51f789f0327dece6b6c4e.png

 

Тут в CMSIS:

image.png.ffb7d8c2625b087b73b855c792a6e0aa.png

 

Все нужные заголовочные файлы CMSIS, а также основной заголовочный файл описания периферии, startup, и другие системные файлы можно найти в архиве DFP, который качается с st.com или keil.com.

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

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


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

В 28.11.2018 в 15:31, tea1975 сказал:

Это да, пугает зачем столько лишнего то куб в папки проекта наваливает, например хидеры на все камни L4 

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

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


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

Ды ну нафик. Я не HAL-а боюсь, а его кривокосости. При поломке железки на объекте куда лучше на себя пенять (когда сам написал весь код), нежели, покопавшись месяц в поисках проблемы, понять, что проблема в этих HAL-ах. Лучше свои написать.

P.S. SPL - единственное мое исключение. Использую в основном для настройки периферии. Но запуск и ее обслуживание - регистровое с внимательным чтением RM. Ну или все на SPL, если проект совсем простой и не надо гнаться ни за чем.

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


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

On 11/29/2018 at 12:47 AM, Darth Vader said:

Вы же пропустили этот нулевой уровень познания и решили перейти сразу к первому. Да ещё и с Кубом. На время отложите его в сторону.

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

Странная логика. Читая интернеты я так понял наоборот, что HAL и Куб созданы чуть ли не для ардуинщиков (слава богу в их ряды я не попал). И по сути у меня в итоге получилось. За пару дней по урокам с одного ресурса помигал светодиодом, нучился включать его при нажатой кнопке и выключать при отжатой, с прерываниями и без онных. Я конечно согласен, что делая это я не познаю регистровую структуру камня, но быстрый старт вроде бы состоялся. затык был только на названии темы, но теперь я знаю как его лечить. В лохматые годы я программировал немного АВРки в ИАРе на регистрах. Потому что не было ничего подобного ХАЛу. Но и не согласиться с вами не могу. Думаю, что поиграюсь с этими штучками типа облегчающими жизнь и прийду на голый CMSIS. Плавно, спускаясь через LL наверное. Плохо, что литературы на русском по архитектуре кортексов маловато, а с инглишом я дружу увы на уровне - по пьяни поболтать с тайцем в таиланде - полное понимание. Я знаю, щас закидаете советами, что в Embeded без знания английского ловить нефиг и т.д. Ну так уж сложилось. У меня это больше хобби таки.

Попробовал параллельно работать и в MDK и в Атолик. Атолик выглядит интереснее, но понимаю, что Кейл то более для профи и наверно стоит сразу привыкать к правильному инструменту.

Ещё вопрос к гуру. Нет ли описаний где-то как пользоваться дебагером в Кейле? Методом тыка осваивать?

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


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

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

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

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

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

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

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

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

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

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