stcdude 0.1-rc1 доставлен

Ну что, было весело, и я могу похвастаться первым работающим релизом stcdude.
stcdude это опенсорсная ISP утилита для прошивки микроконтроллеров STC. Долгожданная замена упоротой софтине от китаез написанной на VB6.
так что теперь можно комфортно работать используя привычные инструменты: sdcc и make.


Не ожидайте многого, некоторые части поа еще сырые. Так что внутри?

Хорошее

  • Скриптинг процесса на lua, просто расширять и добавлять новые последовательности прошива.
  • Автодетект мк и матчинг по базе данных с получением ценной информации
  • Для поддерживаемых серий выводит iram/xram/irom размеры, описание, рабочую частоту и версию ISP бутлоадыря. Прям как штатный ISP Tool.

Плохое:

  • Так как то, как считается из частоты кварца баудрейт и передается пакетом для переключения — тайна, там захардкожен пакет на 12 Mhz кварц. Соответтвенно с другими частотами оно работать не будет. Рассчет баудрейта добавлен в транк, пока экспериментально, работают не все комбинации баудрейт/частота, 3 байта до сих пор загадка
  • Выставление опций мк пока еще не работает, ровно как нет и вменяемого парсера этих самых опций
  • Последнюю команду ‘encrypt’ я выкинул в реактор. Один хрен не понятно, что она делает (лок флеша?), работает и без нее.

Уродливое:

  • Уйма варнингов при сборке, которые предстоит прихлопнуть.
  • Местами быдлокод

TODO:

  • Номральный рассчет баудрета!11
  • Больше серий stc, хороших и разных
  • Запилить парсер опций

Сборка и установка. Как и все проекты на автолулзах:

git clone git://github.com/nekromant/stcdude.git
cd stcdude
autoreconf --install --force 
./configure 
make
sudo make install

Примерный выхлоп:

[necromant@ilwyn stcmake]$ sudo make stcdude 
stcdude -p "/dev/ttyUSB0" \
-b 1200:57600 \
-a wflash -f main.bin
STC ISP Tool. (c) Necromant 2012
lines 66
columns 271
Loading lua script: /usr/local/share/stcdude/lua/init.lua
Using /dev/ttyUSB0 @ 1200
fd is 3
Running sequence wflash
Trying mcudb stc10fx.lua
Trying mcudb stc12x.lua
MCU DB information
Part name:       STC12C5A60S2
Magic bytes:     D17E
IRAM size:       256 (0x100) bytes
XRAM size:       1024 (0x400) bytes
IROM size:       61440 (0xf000) bytes
Tested ops: FixMe: implement reading of tested ops
Description:
        8051-based microcontroller with 1T(1-clock) High-Speed Core,
        Dual DPTR, 36-44 I/O Lines, 2 Timers/Counters, 2 PCA Timers,
        Alternative build-in oscillator,
        Independent Baud Rate Generator, Programmable Clock-Out,
        60K bytes flash ROM, 1280 bytes data RAM,
        On-chip EEPROM, 2 UARTs, WDT, ISP/IAP, A/D, CCP/PWMl
MCU Options information:
MCU Clock: 12.039340 Mhz (5827.375000 raw)
Bootloader version: 6.2I
Performing baudswitch dance
Baudrate switch to 57600
Baudrate switch to 1200
Baudrate switch to 57600
Erasing mcu flash...
Downloading main.bin (1889 bytes)
 100 % done | #####################################################| 1 K

А теперь дополнительное добро. Для тебя, Нео, есть две таблЭтки:
Синяя: Простой проект мигания диодом на мейке
Красная: Пример проекта под Antares

Добавить комментарий