Home

Awesome

Neotron 32 BIOS

Build Status

Format Status

This is the BIOS for the Neotron 32. It implements the Neotron BIOS API (a hardware-abstraction layer used by the Neotron OS).

Hardware

The Neotron 32 is a revised version of the Monotron. It uses the same Texas Instruments Tiva-C TM4C123 microcontroller, with just 32 KiB of RAM.

Status

This BIOS is a work in progress. Bits of the Monotron firmware will be ported over one at a time. The todo list is:

Memory Map

The Neotron 32 has 256 KiB of Flash and 32 KiB of RAM. The Flash layout is:

The RAM layout is flexible - the BIOS takes as much as it needs, then passes the OS the definitions of how much RAM is available and where it is located. The OS then dynamically allocates almost everything it needs from that. The BIOS is also responsible for configuring the stack, and moving the interrupt vector table to RAM.

Compilation and Flashing

$ rustup target add thumbv7em-none-eabihf
$ opencd # run this in another terminal
$ cargo run --release # will compile and flash using OpenOCD

You will then need to install the OS. Be sure not to erase the BIOS when you install the OS!

Changelog

Unreleased Changes (Source)

Licence

Neotron-32-BIOS Copyright (c) The Neotron Developers, 2020

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

See the full text in LICENSE.md. Broadly, we interpret this to mean (and note that we are not lawyers and this is not legal advice) that if you give someone a Neotron 32, you must also give them one of:

If you are not offering Neotron 32 commercially, and you are using an unmodified upstream version of the source code, then the third option is to give them:

This is to ensure everyone always has the freedom to access the source code in their Neotron 32.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed as above, without any additional terms or conditions.

Code of Conduct

Contribution to this crate is organized under the terms of the Rust Code of Conduct, the maintainer of this crate, the Neotron team, promises to intervene to uphold that code of conduct.