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

STM8L-Discovery первый шаг

Прикупил STM8L-Discovery, на борту STM8L152C6T6. Установил STVD 4.3.12 с оф.сайта вместе с дровами для платы. Создал пространство, в нем проект на ассемблере. Сначала не разобрался что такое STVP, поэтому запустил STVD и увидел пиктограмму “Programmer”, нажал (уж очень хотелось узнать увидит ли софт мою плату), получил AppCrash и закрытие STVD без моего на то желания. Избавился от этого безобразия путем, описанным STMщиками тут https://community.st.com/thread/45768-st-vi...rogramming-tool. Еще раз запустил STVD, подключил плату, открыл созданное пространство+проект, нажал на Programmer и увидел, что это некий Light Programmer, особо нифига не понял как там можно оптионал битс выставлять и т.д., закрыл. Скомбилировал и собрал проект, нажал на “Debug”. Отладка вроде как запустилась без ошибок, НО тут началось «непонятное». Во-первых, перед запуском отладки я установил чисто для интереса breakpoint на первой же инструкции, где инициализируется стек, думал, что после запуска отладки смогу нажать Run и отладчик, «добежав» до этой точки, остановится. Но отладчик этого делать и не думал, в момент запуска отладчика он что-то невнятное выругал и просто взял и удалил только что установленную мной точку останова. Я так и не понял почему. Ладно, хрен с ней с точкой, решил с помощью кнопок «перескока» (step in и др.) посмотреть как будет идти выполнение когда. Но, к моему сожалению отладчик не показывал маркер напротив строки, которую он сейчас выполняет. Но при этом показывает маркер в окне дизассемблера. Я немного поднапрягся, разбираться не стал. Решил посмотреть выходной файл, который после сборки проекта генерируется для прошивки в МК. Как я смог понять он выводится в папку Debug с расширением s19. Открыл блокнотом, посмотрел, там всего две строки. Закрыл. Решил изменить код в main.asm, добавив какую-нибудь инструкцию (одну), добавил инструкцию в основном цикле (после всех инициализаций и очистки ram, собрал проект и пошел смотреть этот самый выходной файл с расширением s19. Дата и время изменения файла изменились, но содержимое осталось ровно таким же, две строчки, цифра в цифру совпадает с содержимым файла до внесения изменений в код. В общем я в недоумении пока что. Может кто поделится своим первым проектом типа «помигать светодиодом» для STM8L-Discovery? Только чтобы проект был полностью со всеми инклудами, а то мой мозг убеждает меня, что без наглядного примера я так и . Кстати в свой проект после include mapping.inc я также добавлял STM8L152.inc и STM8L152.asm (скопированные в папку с проектом). Да и еще, отладчик при отключенном дискавери не запускается (пишет ошибку соединения), т.е. плату видит явно, хотя, мне кажется в моем случае это не так важно, так как у меня траблы уже на этапе простой компиляции кода в выходной файл.

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


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

А может ну его, этот ASM? С-ник сильно проще.

 

я планирую использовать STM8L только в максимально простых и дешевых проектах, с минимумом памяти. В общем сейчас поигрался с инклудами.. дело в некоем "правильном" включении файлов в проект, весьма пока дико для меня это все. В инклудах я встречаю даже END в конце отдельного файла. Видимо, так вот просто без оглядки эти инклуды нельзя включать в тексте основного файла, их все таки нужно именно добавлять в проект с помощью среды (типа правой кнопкой на папке проекта и затем "Add Files To Project"). Светодиод заморгал! Из непонятных косяков самой среды STVD еще вот чего - при установке ДВУХ И БОЛЕЕ точек останова при отладке отладчик может пропускать все точки кроме первой попавшейся, т.е. как будто бы я не установил точку (хотя красная точка отображается). Такое происходит при использовании кнопки "Run". А вот если смотреть выполнение кода пошагово (типа "Step Into"), то отладчик не пропускает ни одной точки останова. С одной стороны рад, что что-то уже получилось, с другой "терзают смутные сомненья" на счет правильности выбора среды разработки.. Еще поиграюсь конечно, может привыкнуть надо просто.

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

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


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

On 5/24/2018 at 9:36 PM, VladislavS said:

А может ну его, этот ASM? С-ник сильно проще.

Как вариант https://github.com/TG9541/stm8ef eForth достаточно компактно и непритязательно. (Wiki описание есть)

Знание ассемблера, приветствуется. :)

P.S. Здесь некоторая подборка книг по Форт, есть и по eForth

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

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


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

On 5/24/2018 at 4:53 PM, vazz said:

. . . Такое происходит при использовании кнопки "Run". А вот если смотреть выполнение кода пошагово (типа "Step Into"), то отладчик не пропускает ни одной точки останова. С одной стороны рад, что что-то уже получилось, с другой "терзают смутные сомненья" на счет правильности выбора среды разработки.. . . .

Читайте внимательно листинг - warning.

Также учитывайте, что время выполнения под отладчиком (при пошаговом исполнении - уж точно) и без оного, будет разным (также как и отработка аппаратных таймеров, если Вы их используете). Из-за этого возможно и наблюдается отработка-неотработка BP.

Вам так или иначе надо будет работать на С

Предлагаю Вам взять любой HelloWorld проект на С для Вашего контроллера. Если нужен именно ASM - то в С-ишный проект легко прилинковывается модуль с исходником на ASM, который будет компилироваться в составе проекта. Что там происходит "в целом" на уровене ASM кода Вы сможете посмотреть в листингах, надо только включить в опциях проекта режим его выдачи. 

 

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


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

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

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

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

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

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

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

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

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

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