Skip to content

Towards improved modularity

Pre-release
Pre-release
Compare
Choose a tag to compare
@TG9541 TG9541 released this 13 Apr 19:03

New features

Target builds in downstream projects

An experimental feature allows downstream projects building new "target boards" using only STM8 eForth "release archives". To enable this all source code that's necessary for a target build is now contained in the release archive, and the Makefile is now more modular (see forth.mk).

Additionally, the forth.rst post-linker list file, previously used by symload.sh, has been moved into an independent release archive (stm8ef-rst.tgz).

#298 changed the simload precedence for Forth code: {BOARD}/board.fs now comes first, main.fs is second. Maybe that's not the best solution for all use cases but it solves the problem of loading "board code" first.

Refer to #272 for details.

Move more out of the Core

#282, #285 and #289 make the STM8 eForth Core leaner: the idea is to move more potentially board specific code to include files so that it can be "overwritten" by adding a specific solution to a board folder.

Priority feature for EEALIAS using "un-link tags"

With #265 tagging un-linked dictionary entries was introduced. #263 cleaned up old feature selection options. Both contribute to building the aliaslist.fs file in the target folder so that they can be loaded into the EEPROM with the EEALIAS feature.

With this method up to half a KiB of Flash memory an be saved compared with a STM8 eForth binary that has the same feature set.

Improved Support for STM8S High Density Devices

  • #298 also adds Forth stack primitives (rp@, rp!, sp! and sp@) - maybe this will be the default also for Medium Density devices.
  • #293 fixes a bug that broke simulated console port with TIM4

Note: the final release will also provide a solution for #292.

Yet another W1209 Variant

#277 adds support for the W1209 CA V2. Please refer to the docs in the board folder.

Other changes

  • #281 makes the behavior of 'IDLE similar to BG: setting it to 0 stops Idle Task execution
  • #299 adds ]BCPL for direct bit complement (like ]B! etc.)

Bug Fixes

  • #270 fixes the Rx GPIO CR1 settings if the simulated UART doesn't use PD1 (SWIM)
  • #279 fixed GPIO settings for the STM8L-Discovery board
  • #300 fixes a bug in genconst.awk which broke features like 'IDLE and which was on master for about 5 weeks - fortunately release 2.2.24.pre1 was unaffected and 2.2.24.pre2 only lasted for hours.