Neotron Pico - BIOS

Neotron Pico BIOS.

back to main Neotron Pico page.

History

2024-08-15: build and upload latest bios

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ DEFMT_LOG=debug cargo run --release
   Compiling defmt-macros v0.3.9
   Compiling defmt v0.3.2
   Compiling rp2040-hal v0.10.1
   Compiling defmt-rtt v0.4.1
   Compiling embedded-sdmmc v0.6.0
   Compiling neotron-bmc-protocol v0.1.0
   Compiling rp-pico v0.9.0
   Compiling neotron-pico-bios v0.7.0 (/zs/tingo/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS)
    Finished `release` profile [optimized + debuginfo] target(s) in 17.34s
     Running `probe-rs run --chip RP2040 --speed 10000 target/thumbv6m-none-eabi/release/neotron-pico-bios`
     Erasing sectors  [00:00:00] [#########################################################################################] 60.00 KiB/60.00 KiB @ 70.81 KiB/s (eta 0s )
 Programming pages    [00:00:01] [#########################################################################################] 60.00 KiB/60.00 KiB @ 34.00 KiB/s (eta 0s )    Finished in 2.657s
Error: An ARM specific error occurred.

Caused by:
    0: Error using access port
    1: Failed to read register DRW at address 0x0000000c
    2: An error occurred in the communication with an access port or debug port.
    3: Target device did not respond to request.

and now it says "System Hardfault". Try in bootloader mode

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ DEFMT_LOG=debug cargo run --release
    Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
     Running `probe-rs run --chip RP2040 --speed 10000 target/thumbv6m-none-eabi/release/neotron-pico-bios`
     Erasing sectors  [00:00:00] [#########################################################################################] 60.00 KiB/60.00 KiB @ 71.50 KiB/s (eta 0s )
 Programming pages    [00:00:01] [#########################################################################################] 60.00 KiB/60.00 KiB @ 34.10 KiB/s (eta 0s )    Finished in 2.637s
ERROR probe_rs::cmd::run: Error attempting to attach to RTT: RTT control block not found in target memory.
- Make sure RTT is initialized on the target, AND that there are NO target breakpoints before RTT initalization.
- For VSCode and probe-rs-debugger users, using `halt_after_reset:true` in your `launch.json` file will prevent RTT 
    initialization from happening on time.
- Depending on the target, sleep modes can interfere with RTT. Continuing without RTT...     
DEBUG probe_rs::debug::unit_info: Found DIE, now checking for inlined functions: name=None
Frame 0: HardFault @ 0x10009bd8
Frame 1: __udf @ 0x1000945c inline
       ./asm/lib.rs:48:1
Frame 2: __udf @ 0x000000001000945c
       ./asm/lib.rs:51:17
Frame 3: <unknown function @ 0x10008ad0> @ 0x10008ad0
       /home/tingo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pc-keyboard-0.7.0/src/scancodes/set2.rs:25:1

2024-08-15: check that the probe is detected

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ probe-run --list-probes
the following probes were found:
[0]: Picoprobe CMSIS-DAP (VID: 2e8a, PID: 000c, Serial: E660D4A0A71CA332, CmsisDap)

2024-08-15: I have updated the repo (and merged conflicts)

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ git log --oneline
e60ab7c (HEAD -> develop) fixed merge conflict
fadb760 (origin/develop, origin/HEAD) Merge pull request #108 from Neotron-Compute/update-flash-instructions
a4bee47 (origin/update-flash-instructions) Clarify which OS binary in README.md
478988f Fix clippy warnings about old chrono API
aaedb42 Update Cargo.lock
67dd556 Remove OS from build.
8ff598e Mark ELF file with .elf extension
cedd5e1 Use rustup to grab latest stable Rust.
0b2bc59 Merge pull request #105 from Neotron-Compute/add-elf2uf2
bbf73fe Merge pull request #104 from Neotron-Compute/update-os-to-081
d7f07d8 Remove more static mut referencing.
a1f5d57 Remove the static mut from the video.
ab1f620 OK, let's force us to fix those warnings
ae88562 Don't use clippy action.
60762ce Update/remove old actions.
352ca4f Upload artefacts from non-release builds.
8c7e30a Add UF2 file to output
5b35add (origin/update-os-to-081) Bump OS to 0.8.1
7f5be23 Merge pull request #102 from jannic-dev-forks/rp2040-hal-0-10
b7d5974 Update rp2040-hal to v0.10
a366c2c Merge pull request #101 from Neotron-Compute/update-video-api
1d8cd0e (origin/update-video-api) Use OS 0.8.0
4b1f9cd Run the debug probe faster
4b1fca0 Add Chunk2 and Chunk4 support.
1f2e0aa Drop the debug link speed.
9e63355 Update github actions.
5b2567d Remove vscode stuff.
0e34f32 Use new common API, and update video code.
182761c Merge pull request #100 from Neotron-Compute/vscode-config
24ea739 (origin/vscode-config) Clippy cleanups.
13b6d38 Use probe-rs for debugging.
668a46a Merge pull request #97 from Neotron-Compute/main
2e4b369 (tag: v0.7.0, origin/main) Merge pull request #96 from Neotron-Compute/release/v0.7.0
3aa8430 Update to 0.7.0
3185652 Merge pull request #95 from Neotron-Compute/update-os
2e65a13 Update to OS v0.7.1
519e3ef Merge pull request #93 from Neotron-Compute/support-i2c

2023-09-17: building latest bios

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ DEFMT_LOG=debug cargo run --release
    Finished release [optimized + debuginfo] target(s) in 0.09s
     Running `probe-rs run --chip RP2040 target/thumbv6m-none-eabi/release/neotron-pico-bios`
     Erasing sectors  [00:00:02] [#######################################################################################] 196.00 KiB/196.00 KiB @ 68.69 KiB/s (eta 0s )
 Programming pages    [00:00:08] [#######################################################################################] 196.00 KiB/196.00 KiB @ 22.14 KiB/s (eta 0s )    Finished in 11.762s
Error: An ARM specific error occurred.

Caused by:
    0: Error using access port
    1: Failed to read register DRW at address 0x0000000c
    2: An error occurred in the communication with an access port or debug port.
    3: Target device did not respond to request.

2023-09-17: installing probe-rs requires a parameter

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ cargo install probe-rs --features="cli"
[..]
  Installing /home/tingo/.cargo/bin/probe-rs
   Installed package `probe-rs v0.20.0` (executables `cargo-embed`, `cargo-flash`, `probe-rs`)

2023-09-17: building BIOS now requires probe-rs. Maybe it always did, I can't remember.

2023-09-17: building latest bios

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ DEFMT_LOG=debug cargo run --release
    Updating crates.io index
  Downloaded diff v0.1.13
  Downloaded vte v0.11.1
  Downloaded debug-helper v0.3.13
  Downloaded defmt-rtt v0.4.0
  Downloaded vte_generate_state_changes v0.1.1
  Downloaded crunchy v0.2.2
  Downloaded pio-parser v0.2.2
  Downloaded bit-set v0.5.3
  Downloaded io-lifetimes v1.0.10
  Downloaded bare-metal v0.2.5
  Downloaded tlv320aic23 v0.1.0
  Downloaded pio-proc v0.2.2
  Downloaded nb v0.1.3
  Downloaded lalrpop-util v0.19.12
  Downloaded gcd v2.3.0
  Downloaded ena v0.14.2
  Downloaded tiny-keccak v2.0.2
  Downloaded log v0.4.17
  Downloaded aho-corasick v1.0.1
  Downloaded syn v2.0.15
  Downloaded utf8parse v0.2.1
  Downloaded unicode-xid v0.2.4
  Downloaded termcolor v1.2.0
  Downloaded spin v0.9.8
  Downloaded siphasher v0.3.10
  Downloaded rustc_version v0.4.0
  Downloaded regex-syntax v0.6.29
  Downloaded precomputed-hash v0.1.1
  Downloaded phf_shared v0.10.0
  Downloaded parking_lot v0.12.1
  Downloaded num-integer v0.1.45
  Downloaded itertools v0.10.5
  Downloaded byteorder v1.4.3
  Downloaded petgraph v0.6.3
  Downloaded libc v0.2.142
  Downloaded regex-syntax v0.7.1
  Downloaded regex v1.8.1
  Downloaded rustix v0.37.19
  Downloaded chrono v0.4.24
  Downloaded lalrpop v0.19.12
  Downloaded string_cache v0.8.7
  Downloaded stable_deref_trait v1.2.0
  Downloaded new_debug_unreachable v1.0.4
  Downloaded indexmap v1.9.3
  Downloaded hashbrown v0.12.3
  Downloaded dirs-sys-next v0.1.2
  Downloaded dirs-next v2.0.0
  Downloaded bitflags v1.3.2
  Downloaded autocfg v1.1.0
  Downloaded codespan-reporting v0.11.1
  Downloaded term v0.7.0
  Downloaded usb-device v0.2.9
  Downloaded quote v1.0.26
  Downloaded num-traits v0.2.15
  Downloaded heapless v0.7.16
  Downloaded errno v0.3.1
  Downloaded rp2040-boot2 v0.3.0
  Downloaded proc-macro2 v1.0.56
  Downloaded cortex-m-rt v0.7.3
  Downloaded arrayvec v0.7.2
  Downloaded thiserror-impl v1.0.40
  Downloaded ascii-canvas v3.0.0
  Downloaded bit-vec v0.6.3
  Downloaded rustc_version v0.2.3
  Downloaded parking_lot_core v0.9.7
  Downloaded thiserror v1.0.40
  Downloaded embedded-hal v0.2.7
  Downloaded num_enum v0.5.11
  Downloaded lock_api v0.4.9
  Downloaded either v1.8.1
  Downloaded smallvec v1.10.0
  Downloaded semver v1.0.17
  Downloaded embedded-dma v0.2.0
  Downloaded is-terminal v0.4.7
  Downloaded hash32 v0.2.1
  Downloaded scopeguard v1.1.0
  Downloaded bitfield v0.13.2
  Downloaded volatile-register v0.2.1
  Downloaded semver v0.9.0
  Downloaded num_enum_derive v0.5.11
  Downloaded atomic-polyfill v0.1.11
  Downloaded fixedbitset v0.4.2
  Downloaded semver-parser v0.7.0
  Downloaded void v1.0.2
  Downloaded cortex-m-rt-macros v0.7.0
  Downloaded defmt-parser v0.3.2
  Downloaded shared-bus v0.2.5
  Downloaded neotron-bmc-protocol v0.1.0
  Downloaded neotron-bmc-commands v0.2.0
  Downloaded neotron-ffi v0.1.0
  Downloaded panic-probe v0.2.1
  Downloaded rp2040-hal-macros v0.1.0
  Downloaded atomic-polyfill v1.0.2
  Downloaded defmt v0.3.2
  Downloaded rtcc v0.3.0
  Downloaded ds1307 v0.5.0
  Downloaded defmt-macros v0.3.4
  Downloaded pio v0.2.1
  Downloaded neotron-common-bios v0.11.0
  Downloaded fugit v0.3.6
  Downloaded crc-any v2.4.3
  Downloaded mcp794xx v0.3.0
  Downloaded rp-pico v0.7.0
  Downloaded pc-keyboard v0.7.0
  Downloaded embedded-sdmmc v0.5.0
  Downloaded cortex-m v0.7.7
  Downloaded rp2040-hal v0.8.1
  Downloaded rp2040-pac v0.4.0
  Downloaded 108 crates (6.0 MB) in 1.77s
   Compiling proc-macro2 v1.0.56
   Compiling quote v1.0.26
   Compiling unicode-ident v1.0.8
   Compiling autocfg v1.1.0
   Compiling syn v1.0.109
   Compiling libc v0.2.142
   Compiling cfg-if v1.0.0
   Compiling nb v1.1.0
   Compiling version_check v0.9.4
   Compiling num-traits v0.2.15
   Compiling num-integer v0.1.45
   Compiling nb v0.1.3
   Compiling void v1.0.2
   Compiling embedded-hal v0.2.7
   Compiling semver-parser v0.7.0
   Compiling cortex-m v0.7.7
   Compiling memchr v2.5.0
   Compiling semver v0.9.0
   Compiling proc-macro-error-attr v1.0.4
   Compiling lock_api v0.4.9
   Compiling io-lifetimes v1.0.10
   Compiling parking_lot_core v0.9.7
   Compiling dirs-sys-next v0.1.2
   Compiling rustc_version v0.2.3
   Compiling proc-macro-error v1.0.4
   Compiling syn v2.0.15
   Compiling indexmap v1.9.3
   Compiling rustix v0.37.19
   Compiling smallvec v1.10.0
   Compiling crunchy v0.2.2
   Compiling thiserror v1.0.40
   Compiling paste v1.0.12
   Compiling scopeguard v1.1.0
   Compiling log v0.4.17
   Compiling cortex-m-rt v0.7.3
   Compiling aho-corasick v1.0.1
   Compiling bare-metal v0.2.5
   Compiling dirs-next v2.0.0
   Compiling errno v0.3.1
   Compiling hashbrown v0.12.3
   Compiling tiny-keccak v2.0.2
   Compiling siphasher v0.3.10
   Compiling regex-syntax v0.7.1
   Compiling defmt v0.3.2
   Compiling bitflags v1.3.2
   Compiling thiserror-impl v1.0.40
   Compiling regex v1.8.1
   Compiling phf_shared v0.10.0
   Compiling num_enum_derive v0.5.11
   Compiling cortex-m-rt-macros v0.7.0
   Compiling term v0.7.0
   Compiling parking_lot v0.12.1
   Compiling either v1.8.1
   Compiling once_cell v1.17.1
   Compiling bit-vec v0.6.3
   Compiling precomputed-hash v0.1.1
   Compiling semver v1.0.17
   Compiling arrayvec v0.7.2
   Compiling critical-section v1.1.1
   Compiling fixedbitset v0.4.2
   Compiling new_debug_unreachable v1.0.4
   Compiling defmt-macros v0.3.4
   Compiling vcell v0.1.3
   Compiling volatile-register v0.2.1
   Compiling petgraph v0.6.3
   Compiling string_cache v0.8.7
   Compiling bit-set v0.5.3
   Compiling itertools v0.10.5
   Compiling ena v0.14.2
   Compiling ascii-canvas v3.0.0
   Compiling num_enum v0.5.11
   Compiling defmt-parser v0.3.2
   Compiling lalrpop-util v0.19.12
   Compiling is-terminal v0.4.7
   Compiling unicode-xid v0.2.4
   Compiling bitfield v0.13.2
   Compiling regex-syntax v0.6.29
   Compiling diff v0.1.13
   Compiling chrono v0.4.24
   Compiling rp2040-pac v0.4.0
   Compiling debug-helper v0.3.13
   Compiling stable_deref_trait v1.2.0
   Compiling crc-any v2.4.3
   Compiling rustc_version v0.4.0
   Compiling lalrpop v0.19.12
   Compiling vte_generate_state_changes v0.1.1
   Compiling pc-keyboard v0.7.0
   Compiling atomic-polyfill v0.1.11
   Compiling utf8parse v0.2.1
   Compiling neotron-ffi v0.1.0
   Compiling gcd v2.3.0
   Compiling byteorder v1.4.3
   Compiling fugit v0.3.6
   Compiling neotron-common-bios v0.11.0
   Compiling vte v0.11.1
   Compiling pio v0.2.1
   Compiling rp2040-hal-macros v0.1.0
   Compiling heapless v0.7.16
   Compiling rp2040-boot2 v0.3.0
   Compiling embedded-dma v0.2.0
   Compiling rtcc v0.3.0
   Compiling termcolor v1.2.0
   Compiling panic-probe v0.2.1
   Compiling atomic-polyfill v1.0.2
   Compiling rand_core v0.6.4
   Compiling defmt-rtt v0.4.0
   Compiling usb-device v0.2.9
   Compiling unicode-width v0.1.10
   Compiling rp-pico v0.7.0
   Compiling codespan-reporting v0.11.1
   Compiling neotron-pico-bios v0.5.2 (/zs/tingo/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS)
   Compiling hash32 v0.2.1
   Compiling mcp794xx v0.3.0
   Compiling ds1307 v0.5.0
   Compiling embedded-sdmmc v0.5.0
   Compiling neotron-bmc-protocol v0.1.0
   Compiling neotron-bmc-commands v0.2.0
   Compiling shared-bus v0.2.5
   Compiling tlv320aic23 v0.1.0
   Compiling rp2040-hal v0.8.1
   Compiling pio-parser v0.2.2
   Compiling pio-proc v0.2.2
    Finished release [optimized + debuginfo] target(s) in 1m 21s
     Running `probe-rs run --chip RP2040 target/thumbv6m-none-eabi/release/neotron-pico-bios`
error: could not execute process `probe-rs run --chip RP2040 target/thumbv6m-none-eabi/release/neotron-pico-bios` (never executed)

Caused by:
  No such file or directory (os error 2)

2023-09-17: I created this page.