GithubHelp home page GithubHelp logo

nw-rs / rustworks Goto Github PK

View Code? Open in Web Editor NEW
38.0 7.0 8.0 275 KB

Operating system written in Rust for NumWorks calculator (model n0110)

License: MIT License

Nix 100.00%
rust embedded os calculator numworks booloader

rustworks's People

Contributors

pierrediab avatar rfuest avatar willemml 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rustworks's Issues

Use PTR constant instead of deprecated ptr() function on registers and peripherals

Command: crate build

Full warning:

warning: use of deprecated associated function `cortex_m::peripheral::MPU::ptr`: Use the associated constant `PTR` instead
   --> board-support/src/lib.rs:140:26
    |
140 |         let mpu = &*MPU::ptr();
    |                          ^^^
    |
    = note: `#[warn(deprecated)]` on by default

warning: `nw-board-support` (lib) generated 1 warning

Bootloader & flasher for QPI external flash

Need to finish QSPI flash and then create a boot loader so RustWorks can be flashed to external flash.
Potentially useful links:

Todo:

  • Read external flash
  • Write external flash
  • Flash algorithm implementation so that cargo flash can access external flash (done in willemml/rsworks-flash-algo)
  • Make probe-rs and cargo-embed use flash algorithm
  • Enable writing external flash using dfu-util

dfu-util: File size is too big: Success

Hello, I'm trying to use rustworks on my numworks (n110) from my Raspberry Pi 4 (with Raspberry Pi OS, I don't know if it matters) but when I run cargo make dfu
I get the following error message:

[cargo-make] INFO - Execute Command: "dfu-util" "-d" "0483:df11" "-a" "0" "-s" "0x08000000:leave" "-D" "target/thumbv7em-none-eabihf/debug/rustworks.bin"
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: File size is too big: Success
[cargo-make] ERROR - Error while executing command, exit code: 74
[cargo-make] WARN - Build Failed.

Before running rustworks, I installed dependencies:

rustup target add thumbv7em-none-eabihf
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi 
sudo apt-get install dfu-util

rustup component add llvm-tools-preview
cargo install cargo-binutils
cargo install cargo-make

Then I cloned rustworks repository and ran cargo make dfu .

The bin file (target/thumbv7em-none-eabihf/debug/rustworks.bin) has a size of 2, 28 GB which seems effectively too big to flash on the numworks.

did I do something wrong?

Emulators?

Android emulator?
Windows emulator?
Linux emulator?
iOS emulator?

This would be awesome to have because it would make it so that we could make rustworks work in a fully open source platform, like, for example, creating our own calculator hardware (fully open source unlike Numworks).

Remove alloc dependency

Ideally the OS should not depend on an allocator for any core features (e.g. displaying text)

ERROR - Task dfu not found

using branch split (or master) I get ERROR - Task dfu not found.

[cargo-make] INFO - cargo make 0.35.15
[cargo-make] INFO - Build File: Makefile.toml
[cargo-make] INFO - Task: dfu
[cargo-make] INFO - Profile: development
[cargo-make] INFO - Running Task: legacy-migration
[cargo-make] INFO - Running Task: workspace
/Data/Repositories/rustworks
[cargo-make][1] INFO - Build File: Makefile.toml
[cargo-make][1] INFO - Task: dfu
[cargo-make][1] INFO - Profile: development
[cargo-make][1] ERROR - Task dfu not found
[cargo-make][1] WARN - Build Failed.
[cargo-make] ERROR - Error while running duckscript: Source: Unknown Line: 5 - Error while executing command, exit code: 1
[cargo-make] WARN - Build Failed.

Any idea why? Thanks!

Unit tests

Everything should be unit tested somehow, I am not entirely sure how to do this yet for the embedded part though.

Better documentation

All code (especially code that deals with complex thing specific to embedded development like modifying registers) should be documented with comments explaining what's going on to make it easier for other people to understand and contribute to the project.

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.