Сообщение от stm8
|
Согласно док на SWIM он может писать в RAM
может быть для маленького кода можно делать отладку напрямую из RАМ?
|
Тоже возникала такая мысль. И тоже из-за "..согласно док на SWIM он может писать в RAM".
Жалко тратить и без того мизерный многотысячный ресурс флеша, нес-па?
![Валяюсь от смеха](images/smilies/icon_biggrin.gif)
( шутка )
Мысль возникла чисто из спортивного интереса, не более того.
Попробовал в IDE STVD на ST-шном асме на STM8L152.
Итог - проверил, да, загрузка/отладка идеально работает.
Я делал следующим образом ( повторюсь, STVD, асм от ST ).
Имеем 2 проекта в рабочем пространстве.
-------------------------
1-й проект.
Обычный проект-шаблон-коза, созданный мастером, из которого удален код очистки ОЗУ ( по понятным причинам ). После инициализации указателя стека проверяем пару байт ОЗУ на наличие "магического числа" (сигнатуры) - признака того, что в ОЗУ сидит наша программа. Например, проверяем пару байт по адресам 102h-103h на наличие слова 55AAh. Если ОК, то передаем управление на адрес 100h. Все. Можно прошивать МК.
-------------------------
2-й проект.
Удалены неиспользуемые сегменты ( в частности 'rom' ).
Оставлен сегмент 'ram1', который по умолчанию начинается с адреса 100h. Вот тут и пишем код.
Начинаем со строк:
segment 'ram1'
jra main ; сюда передаст управление код из флеш ( 1-й проект)
dc.w $55AA ; та самая сигнатура
...
main:
;тестируемый код вплоть до начала области стека
end
После запуска отладки 2-го проекта код грузится в ОЗУ, и, когда МК передаст управление на нашу программу в ОЗУ, сработает точка останова в пределах нашей программы. Вуаля.
Флеш в данном случае можно использовать как своего рода "BIOS" с набором готовых подпрограмм и пользоваться ими.
Для
отладки небольших кусков кода сгодится.
С Proprietary Code Area не работал.
Это один из способов. Можно еще поиграться с перенастройкой/перераспределением сегментов памяти и т.д.
Но лично мой спортивный интерес был удовлетворен - загрузка/отладка прекрасно работают, поэтому с другими средами/средствами разработки/языками я не стал экспериментировать.