Ретро-компьютер (BASIC) на STM32

UPDATE:

PC приложение (под Линукс):
PC

OK после операций с SD картой:
loadOKsaveOKUPDATE:
Работа с SD-картой:

UPDATE:
Работают SAVE и LOAD Бейсик-программ на SD-карточку. Ниже скриншоты загрузки программы TEST.BAS и трассировка запуска из тестовой UART-консоли:
LOADtraces

Еще около 8000 байт во флеш-памяти для разных улучшалок прошивки:

** Programming Finished **
** Verify Started **
...
verified 55744 bytes in 0.836388s (65.086 KiB/s)
** Verified OK **
** Resetting Target **

TODO список:

  1. Изменение названия Stm32BASIC на stm32f1BASIC Done
  2. Рефакторинг кода Done
  3. Поддержка SD карточки Done
  4. Скроллинг программы кнопками курсора
  5. Выкладывание проекта в Гитхаб
  6. Разработка печатной платы и заказ первой партии плат

--------------------------------- Далее архив -------------------------------

UPDATE:
Подзаточил код stm32BASIC до состояния работы с клавиатурой PS2:

UPDATE:
Кнопочная клавиатура работает. На очереди - SD-карточка
stm32 basic
Прогнал тест 8-ферзей на Бейсике, который, напомню, на Arduino-Nano занял 3.4 секунды. Результат на stm32f1: 0.8 секунды или примерно в 10 раз быстрее МК161 (измерял ручным секундомером, не timestamps). Далее под катом старый текст про NodeMCU.

==========================================================
Cей эксперимент задвинут в дальний ящик из-за своеобразного подхода архитектуры esp8266 к работе с памятью. Разбираться, как выравнивать работу с данными разной размерности в памяти мне лень.

Архив --------------------------------------------
Попробовал сбилдить Ардуино-Васик под сабж (в конфигурации Serial Terminal Input), выделив под Васик 32Кб.

nodemcu-basic
Выглядит многообещающе:

Sketch uses 268212 bytes (25%) of program storage space. Maximum is 1044464 bytes.
Global variables use 67280 bytes (82%) of dynamic memory, 
    leaving 14640 bytes for local variables. Maximum is 81920 bytes

В общем, надо I2C подзапилить и подключить к дисплею.

UPDATE: Навскидку дисплей от NodeMCU не заработал. Скорее всего, проблема в 3в питании - дисплею надо 5. Либо NodeMCU у меня проблемная, доберусь до осцилла, проверю

UPDATE_2: Дисплей подключился (таки надо 5 вольт ему), Васик стартовал:

Однако при попытке ввести строку Васика с сериал терминала 8266 выпадает в exception:

Fatal exception 9(LoadStoreAlignmentCause):
epc1=0x402036f8, epc2=0x00000000, epc3=0x00000000, excvaddr=0x3ffeef3d, depc=0x00000000

Exception (9):
epc1=0x402036f8 epc2=0x00000000 epc3=0x00000000 excvaddr=0x3ffeef3d depc=0x00000000

ctx: cont
sp: 3fff04e0 end: 3fff0700 offset: 01a0

>>>stack>>>
3fff0680:  0000001f 3ffef438 3fff0e14 402036e0 
3fff0690:  40100031 3ffef3f0 00000000 3ffef3fc 
3fff06a0:  00000031 3ffef3f0 00000028 40205556 
3fff06b0:  00000001 3ffef6d8 40205fb8 3ffef6d8 
3fff06c0:  3fffdad0 00000000 3ffeef38 40203943 
3fff06d0:  3fffdad0 00000000 3ffeef38 40202706 
3fff06e0:  feefeffe feefeffe 3ffef6d0 40206004 
3fff06f0:  feefeffe feefeffe 3ffef6e0 40100108 
<<
Метки публикаций: