Skip to content

Commit

Permalink
Merge pull request #403 from TG9541/ummod
Browse files Browse the repository at this point in the history
Bugfix release fixes #400 UM/MOD
  • Loading branch information
TG9541 authored Feb 9, 2021
2 parents c450bb7 + 6165772 commit c3d755f
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
6 changes: 4 additions & 2 deletions MINDEV/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
## STM8 eForth "DCDC" configuration
## STM8 eForth "MINDEV" configuration

This folder contains the STM8 eForth configuration files for the "MINDEV" STM8S103F3P6 breakout board.
This folder contains the STM8 eForth configuration files for the common "MINDEV" STM8S103F3P6 breakout board.

The board configuration provides the word `OUT!` for controlling the LED connected to PB5. Otherwise it's very similar to [STM8S103F3](https://github.com/TG9541/stm8ef/tree/master/STM8S103F3).

![MINDEV](https://camo.githubusercontent.com/82bd480f176951de9a469e134f543a6570f48597/68747470733a2f2f616530312e616c6963646e2e636f6d2f6b662f485442314e6642615056585858586263587058587136785846585858362f357063732d6c6f742d53544d3853313033463350362d73797374656d2d626f6172642d53544d38532d53544d382d646576656c6f706d656e742d626f6172642d6d696e696d756d2d636f72652d626f6172642e6a70675f323230783232302e6a7067)

Expand Down
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@

[![Travis-CI](https://travis-ci.org/TG9541/stm8ef.svg)](https://travis-ci.org/TG9541/stm8ef)

STM8 eForth is an interactive Forth system for the full range of [STM8 8-bit MCUs](https://www.st.com/en/microcontrollers-microprocessors/stm8-8-bit-mcus.html), including low power and low cost variants. The Forth console, an interpreter-compiler that runs on the MCU, and multi-tasking features allow interactive control of peripherals, parameter tuning or even changing running code (which is rather unusual for a $0.20 "computer").
STM8 eForth is an interactive Forth system for the full range of [STM8 8-bit MCUs](https://www.st.com/en/microcontrollers-microprocessors/stm8-8-bit-mcus.html), including low power and low cost variants. The Forth console, an interpreter-compiler, turns a $0.20 device into a "computer". Multi-tasking features allow interactive control of peripherals, parameter tuning and even compiling code into an application while it's running.

STM8 eForth originated in [Dr. C.H. Ting's eForth](http://www.forth.org/svfig/kk/07-2010.html) for the STM8S Discovery. With the kind permission of the original author the code presented here is under [MIT-like license](https://github.com/TG9541/stm8ef/blob/master/LICENSE.md). Much of the original code was re-written and many features were added, e.g. compilation to Flash memory, autostart code, interrupt handling (see [overview](https://github.com/TG9541/stm8ef#stm8-eforth-feature-overview)).
The original STM8 eForth was written by [Dr. C.H. Ting's eForth](http://www.forth.org/svfig/kk/07-2010.html) for the STM8S Discovery. With the kind permission of Dr. Ting the code presented here is under [MIT license](https://github.com/TG9541/stm8ef/blob/master/LICENSE.md). The original code was improved and many features were added, e.g. compilation to Flash memory, autostart code, interrupt handling (see [overview](https://github.com/TG9541/stm8ef#stm8-eforth-feature-overview)).

For a range of targets, the [binary release](https://github.com/TG9541/stm8ef/releases) provides ready-to-run Forth binaries including a library and STM8 register definitions. A build automation and test solution with Travis-CI allows running Forth code in the [uCsim STM8 simulator](https://travis-ci.org/TG9541/stm8ef). Using the [modular board support](https://github.com/TG9541/stm8ef-modular-build) new targets can be added in downstream projects.
For a range of targets, the [binary release](https://github.com/TG9541/stm8ef/releases) provides ready-to-run Forth binaries including a library and STM8 register definitions. Build test automation with Travis-CI runs Forth code in the [uCsim STM8 simulator](https://travis-ci.org/TG9541/stm8ef). Using the [modular build support](https://github.com/TG9541/stm8ef-modular-build) new targets can be added in downstream projects.

[![STM8EF Wiki](https://user-images.githubusercontent.com/5466977/28994765-3267d78c-79d6-11e7-927f-91751cd402db.jpg)](https://github.com/TG9541/stm8ef/wiki)

## About Forth

The programming language Forth works by defining new words with phrases of existing words using a stack for most of the data flow.

"Hello World" in Forth is this:
Expand All @@ -18,10 +20,12 @@ The programming language Forth works by defining new words with phrases of exist
: hello ." Hello World!" ;
```

Due to its high level of abstraction and its code density Forth is very well suited for embedded control. Since data flows through the stack there is no need for temporary variables which greatly reduces complexity.
Forth is a "low level" language that supports a high level of abstraction. Due to the code density that can be achieved Forth is well suited for embedded control. Since data flows through the stack there is no need for temporary variables which greatly reduces complexity.

Find out more in the [STM8 eForth Walk-Through](https://github.com/TG9541/stm8ef/wiki/STM8-eForth-Programming).

## About STM8 eForth

STM8 eForth is highly configurable: a minimal interactive system fits in 3.5K and a full featured binary requires 4 to 5.5K Flash memory. Due to the extraordinary code density a low-cost 8K device, e.g. [STM8S003F3P6](https://www.st.com/resource/en/datasheet/stm8s003f3.pdf) or [STM8L051F3P6](https://www.st.com/resource/en/datasheet/stm8l051F3.pdf) has sufficent space for applications. If that's not sufficient, low-cost 32K devices with many GPIOs or a richer set of peripherals can be used, e.g. [STM8S005C6](https://www.st.com/resource/en/datasheet/stm8s005c6.pdf) or [STM8L052C6](https://www.st.com/resource/en/datasheet/stm8l052c6.pdf).

The Forth console uses the STM8 U(S)ART or a simulated serial interface for communicating with the console (3-wire full-duplex or 2-wire half-duplex are supported). For console access and programming [e4thcom](https://wiki.forth-ev.de/doku.php/en:projects:e4thcom) is recommended but any serial terminal will work. The console can be configured, even at runtime, to use other types of [character I/O](https://github.com/TG9541/stm8ef/wiki/STM8-eForth-Board-Character-IO), e.g. keyboard and display.
Expand Down Expand Up @@ -146,7 +150,7 @@ Compared to the original "stm8ef" STM8 eForth offers many features:

The code has changed a lot compared to the original code but porting back some bug fixes or features should be possible.

* original code bugs fixed (e.g. `COMPILE`, `DEPTH`, `R!`, `PICK`)
* original code bugs fixed (e.g. `COMPILE`, `DEPTH`, `R!`, `PICK`, `UM/MOD`)
* "ASxxxx V2.0" syntax (the free [SDCC tool chain](http://sdcc.sourceforge.net/) allows mixing Forth, assembly, and C)
* hard STM8S105C6 dependencies were removed (e.g. initialization, clock, RAM layout, UART2)
* flexible RAM layout, basic RAM memory management, meaningful symbols for RAM locations
Expand Down
2 changes: 1 addition & 1 deletion inc/defconf.inc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
;--------------------------------------------------------
RELVER1 = 2 ; Revision digit 1
RELVER0 = 7 ; Revision digit 0
PRE_REL = 1 ; Pre Release digit 0 (0: release)
PRE_REL = 3 ; Pre Release digit 0 (0: release)

TERM_LINUX = 1 ; LF terminates line

Expand Down

0 comments on commit c3d755f

Please sign in to comment.