GithubHelp home page GithubHelp logo

stcdude's Introduction

THIS REPO IS OBSOLETE: Please use stcgal

A long time ago I happened to come across a few STC MCU's and wrote stcdude. At that time there were no linux soutions for the problem. It was hacky as hell in places, but got the job done for me.

Time went on, I had literary no time to work on STCDUDE, and most of my projects used other mcus. Right now, there's a better and more clean solution (that I was not aware of for a while): stcgal

https://github.com/grigorig/stcgal

It packs way more features and, let's be honest, @grigorig had way more time to work on it and it fully supports STC89 that I had literary no time to implement in stcdude.

The code will still be here for historical purposes and since links from hackaday will land you on this very page, so if you want - you may give it a try.

stcdude's People

Contributors

nekromant avatar nox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

stcdude's Issues

Improve Build System

Hi!

Thank you for your work first! I'm yet another guy annoyed by the fact that STC MCUs has to be programmed by some VB6 written software; your software can make a difference!

Unfortunately, I find stcdude's build system painful. My OS is Ubuntu 13.04.

  1. It lacks documentation; no README at all. At first glance, I thought bootstrap script would give me Makefile gracefully. It turns out that the script is used for some obscure purpose which I haven't fully understand yet.
  2. It doesn't provide configure script or autogen.sh, which is commonly expected. After some grind, I find that "autoreconf --install" seems work. "autoreconf" and "autoconf" doesn't work; I'm not a autofoo expert.
  3. The way configure.ac checks liblua is not portable. On Ubuntu, the pkg-config package name for liblua is lua50, lua5.1 or lua5.2, as all three versions can be installed in parallel.
  4. Though the configure.ac claim that it expects liblua version >= 5.1, stcdude cannot build with liblua5.2 actually. I just tried and the compilation (actually linkage) stops at an error that symbol lua_open is not defined. lua_open missing should be upstream issue from Lua side as I found similar complain on Stack Overflow.
    http://stackoverflow.com/questions/8552560/embedding-lua-in-c

Regards,
Ma Xiaojun

What MCUs were actually tested?

I have extracted the list of part numbers from mcudb with my quick and dirty script grep name src/lua/mcudb/*.lua | grep "name=\"\(STC\|IAP\)" | grep -v ".ROM" | sed -e 's/.\+"\(.\+\)".\+/\1/g' -e 's/\(STC\|IAP\)\(.\+\)/\1 \2/g' | sort -k2 | tr -d ' ' | uniq (maybe it's wrong and something's missing):

IAP10F02
STC10F02
STC10F02X
IAP10F02XE
STC10F02XE
IAP10F04
STC10F04
STC10F04X
IAP10F04XE
STC10F04XE
IAP10F06
STC10F06
STC10F06X
IAP10F06XE
STC10F06XE
IAP10F08
STC10F08
STC10F08X
IAP10F08XE
STC10F08XE
IAP10F10
STC10F10
STC10F10X
IAP10F10XE
STC10F10XE
IAP10F12
STC10F12
STC10F12X
IAP10F12XE
STC10F12XE
IAP10F14
IAP10F14X
IAP10L02
STC10L02
STC10L02X
IAP10L02XE
STC10L02XE
IAP10L04
STC10L04
STC10L04X
IAP10L04XE
STC10L04XE
IAP10L06
STC10L06
STC10L06X
IAP10L06XE
STC10L06XE
IAP10L08
STC10L08
STC10L08X
IAP10L08XE
STC10L08XE
IAP10L10
STC10L10
STC10L10X
IAP10L10XE
STC10L10XE
IAP10L12
STC10L12
STC10L12X
IAP10L12XE
STC10L12XE
IAP10L14
IAP10L14X
STC11F01
IAP11F01E
STC11F01E
STC11F02
IAP11F02E
STC11F02E
STC11F03
IAP11F03E
STC11F03E
STC11F04
IAP11F04E
STC11F04E
STC11F05
IAP11F05E
STC11F05E
IAP11F06
IAP11F08
STC11F08
IAP11F08X
STC11F08X
IAP11F08XE
STC11F08XE
IAP11F16
STC11F16
IAP11F16X
STC11F16X
IAP11F16XE
STC11F16XE
IAP11F20
STC11F20
IAP11F20X
STC11F20X
IAP11F20XE
STC11F20XE
IAP11F32
STC11F32
IAP11F32X
STC11F32X
IAP11F32XE
STC11F32XE
IAP11F40
STC11F40
IAP11F40X
STC11F40X
IAP11F40XE
STC11F40XE
IAP11F48
STC11F48
IAP11F48X
STC11F48X
IAP11F48XE
STC11F48XE
IAP11F52
STC11F52
IAP11F52X
STC11F52X
IAP11F52XE
STC11F52XE
IAP11F56
STC11F56
IAP11F56X
STC11F56X
IAP11F56XE
STC11F56XE
IAP11F60
STC11F60
IAP11F60X
STC11F60X
IAP11F60XE
STC11F60XE
IAP11F62
IAP11F62X
STC11L01
IAP11L01E
STC11L01E
STC11L02
IAP11L02E
STC11L02E
STC11L03
IAP11L03E
STC11L03E
STC11L04
IAP11L04E
STC11L04E
STC11L05
IAP11L05E
STC11L05E
IAP11L06
IAP11L08
STC11L08
IAP11L08X
STC11L08X
IAP11L08XE
STC11L08XE
IAP11L16
STC11L16
IAP11L16X
STC11L16X
IAP11L16XE
STC11L16XE
IAP11L20
STC11L20
IAP11L20X
STC11L20X
IAP11L20XE
STC11L20XE
IAP11L32
STC11L32
IAP11L32X
STC11L32X
IAP11L32XE
STC11L32XE
IAP11L40
STC11L40
IAP11L40X
STC11L40X
IAP11L40XE
STC11L40XE
IAP11L48
STC11L48
IAP11L48X
STC11L48X
IAP11L48XE
STC11L48XE
IAP11L52
STC11L52
IAP11L52X
STC11L52X
IAP11L52XE
STC11L52XE
IAP11L56
STC11L56
IAP11L56X
STC11L56X
IAP11L56XE
STC11L56XE
IAP11L60
STC11L60
IAP11L60X
STC11L60X
IAP11L60XE
STC11L60XE
IAP11L62
IAP11L62X
STC12C0552
STC12C0552AD
STC12C1052
STC12C1052AD
STC12C2052
STC12C2052AD
STC12C3052
STC12C3052AD
STC12C4052
STC12C4052AD
STC12C5052
STC12C5052AD
STC12C5201
STC12C5201AD
STC12C5201PWM
STC12C5202
STC12C5202AD
STC12C5202PWM
STC12C5203
STC12C5203AD
STC12C5203PWM
STC12C5204
STC12C5204AD
STC12C5204PWM
STC12C5205
STC12C5205AD
STC12C5205PWM
STC12C5206
STC12C5206AD
STC12C5206PWM
STC12C5401
STC12C5401AD
STC12C5402
STC12C5402AD
STC12C5404
STC12C5404AD
STC12C5406
STC12C5406AD
STC12C5408
STC12C5408AD
STC12C5410
STC12C5410AD
STC12C5412
STC12C5412AD
STC12C5416
STC12C5420
STC12C5424
STC12C5428
STC12C5601
STC12C5601AD
STC12C5602
STC12C5602AD
STC12C5603
STC12C5603AD
STC12C5604
STC12C5604AD
STC12C5605
STC12C5605AD
STC12C5606
STC12C5606AD
STC12C5608
STC12C5608AD
STC12C5612
STC12C5612AD
STC12C5616
STC12C5616AD
STC12C5620
STC12C5620AD
STC12C5624
STC12C5624AD
STC12C5628
STC12C5628AD
STC12C5630
STC12C5630AD
IAP12C5A08
IAP12C5A08AD
STC12C5A08AD
IAP12C5A08CCP
STC12C5A08CCP
IAP12C5A08S2
STC12C5A08S2
STC12C5A08X
IAP12C5A16
IAP12C5A16AD
STC12C5A16AD
IAP12C5A16CCP
STC12C5A16CCP
IAP12C5A16S2
STC12C5A16S2
STC12C5A16X
IAP12C5A32
IAP12C5A32AD
STC12C5A32AD
IAP12C5A32CCP
STC12C5A32CCP
IAP12C5A32S2
STC12C5A32S2
STC12C5A32X
IAP12C5A40
IAP12C5A40AD
STC12C5A40AD
IAP12C5A40CCP
STC12C5A40CCP
IAP12C5A40S2
STC12C5A40S2
STC12C5A40X
IAP12C5A48
IAP12C5A48AD
STC12C5A48AD
IAP12C5A48CCP
STC12C5A48CCP
IAP12C5A48S2
STC12C5A48S2
STC12C5A48X
IAP12C5A52
IAP12C5A52AD
STC12C5A52AD
IAP12C5A52CCP
STC12C5A52CCP
IAP12C5A52S2
STC12C5A52S2
STC12C5A52X
IAP12C5A56
IAP12C5A56AD
STC12C5A56AD
IAP12C5A56CCP
STC12C5A56CCP
IAP12C5A56S2
STC12C5A56S2
STC12C5A56X
IAP12C5A60
IAP12C5A60AD
STC12C5A60AD
IAP12C5A60CCP
STC12C5A60CCP
IAP12C5A60S2
STC12C5A60S2
STC12C5A60X
IAP12C5A62
IAP12C5A62AD
IAP12C5A62CCP
IAP12C5A62S2
STC12LE0552
STC12LE0552AD
STC12LE1052
STC12LE1052AD
STC12LE2052
STC12LE2052AD
STC12LE3052
STC12LE3052AD
STC12LE4052
STC12LE4052AD
STC12LE5052
STC12LE5052AD
STC12LE5201
STC12LE5201AD
STC12LE5201PWM
STC12LE5202
STC12LE5202AD
STC12LE5202PWM
STC12LE5203
STC12LE5203AD
STC12LE5203PWM
STC12LE5204
STC12LE5204AD
STC12LE5204PWM
STC12LE5205
STC12LE5205AD
STC12LE5205PWM
STC12LE5206
STC12LE5206AD
STC12LE5206PWM
STC12LE5401
STC12LE5401AD
STC12LE5402
STC12LE5402AD
STC12LE5404
STC12LE5404AD
STC12LE5406
STC12LE5406AD
STC12LE5408
STC12LE5408AD
STC12LE5410
STC12LE5410AD
STC12LE5412
STC12LE5412AD
STC12LE5416
STC12LE5420
STC12LE5424
STC12LE5428
STC12LE5601
STC12LE5601AD
STC12LE5602
STC12LE5602AD
STC12LE5603
STC12LE5603AD
STC12LE5604
STC12LE5604AD
STC12LE5605
STC12LE5605AD
STC12LE5606
STC12LE5606AD
STC12LE5608
STC12LE5608AD
STC12LE5612
STC12LE5612AD
STC12LE5616
STC12LE5616AD
STC12LE5620
STC12LE5620AD
STC12LE5624
STC12LE5624AD
STC12LE5628
STC12LE5628AD
STC12LE5630
STC12LE5630AD
IAP12LE5A08
IAP12LE5A08AD
STC12LE5A08AD
IAP12LE5A08CCP
STC12LE5A08CCP
IAP12LE5A08S2
STC12LE5A08S2
STC12LE5A08X
IAP12LE5A16
IAP12LE5A16AD
STC12LE5A16AD
IAP12LE5A16CCP
STC12LE5A16CCP
IAP12LE5A16S2
STC12LE5A16S2
STC12LE5A16X
IAP12LE5A32
IAP12LE5A32AD
STC12LE5A32AD
IAP12LE5A32CCP
STC12LE5A32CCP
IAP12LE5A32S2
STC12LE5A32S2
STC12LE5A32X
IAP12LE5A40
IAP12LE5A40AD
STC12LE5A40AD
IAP12LE5A40CCP
STC12LE5A40CCP
IAP12LE5A40S2
STC12LE5A40S2
STC12LE5A40X
IAP12LE5A48
IAP12LE5A48AD
STC12LE5A48AD
IAP12LE5A48CCP
STC12LE5A48CCP
IAP12LE5A48S2
STC12LE5A48S2
STC12LE5A48X
IAP12LE5A52
IAP12LE5A52AD
STC12LE5A52AD
IAP12LE5A52CCP
STC12LE5A52CCP
IAP12LE5A52S2
STC12LE5A52S2
STC12LE5A52X
IAP12LE5A56
IAP12LE5A56AD
STC12LE5A56AD
IAP12LE5A56CCP
STC12LE5A56CCP
IAP12LE5A56S2
STC12LE5A56S2
STC12LE5A56X
IAP12LE5A60
IAP12LE5A60AD
STC12LE5A60AD
IAP12LE5A60CCP
STC12LE5A60CCP
IAP12LE5A60S2
STC12LE5A60S2
STC12LE5A60X
IAP12LE5A62
IAP12LE5A62AD
IAP12LE5A62CCP
IAP12LE5A62S2
STC13F016
STC13F016ADC
STC13F016PCA
STC13F016U2
STC13F040
STC13F040ADC
STC13F040PCA
STC13F040U2
STC13F052
STC13F052ADC
STC13F052PCA
STC13F052U2
STC13F060
STC13F060ADC
STC13F060PCA
STC13F060U2
STC15F02
IAP15F02AD
STC15F02AD
STC15F02CCP
STC15F02E
STC15F02XE
STC15F04
IAP15F04AD
STC15F04AD
STC15F04CCP
STC15F04E
STC15F04XE
STC15F06
IAP15F06AD
STC15F06AD
STC15F06CCP
STC15F06E
STC15F06XE
STC15F08
IAP15F08AD
STC15F08AD
STC15F08CCP
STC15F08E
STC15F08XE
STC15F10
IAP15F10AD
STC15F10AD
STC15F10CCP
STC15F10E
STC15F10XE
STC15F12
IAP15F12AD
STC15F12AD
STC15F12CCP
STC15F12E
STC15F12XE
IAP15F14AD
STC15L02
IAP15L02AD
STC15L02AD
STC15L02CCP
STC15L02E
STC15L02XE
STC15L04
IAP15L04AD
STC15L04AD
STC15L04CCP
STC15L04E
STC15L04XE
STC15L06
IAP15L06AD
STC15L06AD
STC15L06CCP
STC15L06E
STC15L06XE
STC15L08
IAP15L08AD
STC15L08AD
STC15L08CCP
STC15L08E
STC15L08XE
STC15L10
IAP15L10AD
STC15L10AD
STC15L10CCP
STC15L10E
STC15L10XE
STC15L12
IAP15L12AD
STC15L12AD
STC15L12CCP
STC15L12E
STC15L12XE
IAP15L14AD
STC89C516RD
STC89C58RD
STC89LE516AD
STC89LE516X2
STC89LE52AD
STC89LE54AD
STC89LE58AD

Impressive list, but which of those were actually tested?

STC15L2K60S2

Hi @nekromant,

I have been trying to use your awesome effort to program the STC15L2K60S2's I have here and they appear to be ever so slightly incompatible. Do you have any ideas on how to adjust stc-dude to work with this mcu?

install failes

in OSX 10.10

$ sudo make install
Making install in src
 .././install-sh -c -d '/usr/local/bin'
  /usr/bin/install -c stcdude '/usr/local/bin'
for file in lua/seq/12_fwrite.lua lua/seq/12_ewrite.lua lua/seq/info.lua lua/mcudb/9.lua lua/mcudb/7.lua lua/mcudb/3.lua lua/mcudb/6.lua lua/mcudb/8.lua lua/mcudb/2.lua lua/mcudb/5.lua lua/mcudb/4.lua lua/mcudb/11.lua lua/mcudb/10.lua lua/mcudb/1.lua lua/mcudb/12.lua lua/mcudb/13.lua lua/init.lua; do \
    /usr/bin/install -c -D $file //usr/local/share/stcdude/$file ;\
    done
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
/usr/bin/install: illegal option -- D
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...
make[2]: *** [install-data-local] Error 64
make[1]: *** [install-am] Error 2
make: *** [install-recursive] Error 1

STC89C compatibility?

Hello,
I can get stcdude working for 12C series but 89C.
I know that 89C series are older one and might use different protocol but I cant be sure.
My breadboard is somewhat unreliable.
My box is Linux I cannot use ISP dowloader that STC provided.

So I want to ask weather stcdude support 89C series or not?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.