-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Including in a separate Cargo project #168
Comments
I modifed the [package]
authors = ["Dario Nieuwenhuis <[email protected]>"]
edition = "2021"
name = "nrf-softdevice-examples"
version = "0.1.0"
[features]
default = [
"ble-l2cap",
"ble-gatt-server",
"ble-gatt-client",
"ble-sec",
]
ble-l2cap = ["nrf-softdevice/ble-l2cap"]
ble-gatt-server = ["nrf-softdevice/ble-gatt-server"]
ble-gatt-client = ["nrf-softdevice/ble-gatt-client"]
ble-sec = ["nrf-softdevice/ble-sec"]
[dependencies]
embassy-executor = { version = "0.1.1", features = ["nightly", "defmt", "integrated-timers"]}
embassy-time = { version = "0.1.0", features = ["nightly", "defmt", "defmt-timestamp-uptime"]}
embassy-sync = { version = "0.1.0" }
embassy-nrf = { version = "0.1.0", features = [ "nightly", "defmt", "nrf52840", "gpiote", "time-driver-rtc1" ]}
cortex-m = "0.7.2"
cortex-m-rt = "0.7.0"
defmt = "0.3"
defmt-rtt = "0.4.0"
panic-probe = { version = "0.3", features= ["print-defmt"] }
nrf-softdevice = { version = "0.1.0", features = ["defmt", "nrf52840", "s140", "ble-peripheral", "ble-central", "critical-section-impl"] }
nrf-softdevice-s140 = { version = "0.1.1" }
embedded-storage = "0.3.0"
embedded-storage-async = "0.3.0"
futures = { version = "0.3.5", default-features = false }
fixed = "1.2.0"
heapless = "0.7.1"
atomic-pool = "1.0.0"
static_cell = "1.0.0"
[patch.crates-io]
embassy-nrf = { git = "https://github.com/embassy-rs/embassy", tag = "embassy-executor-v0.1.1" }
nrf-softdevice = { git = "https://github.com/embassy-rs/nrf-softdevice" }
[patch."https://github.com/embassy-rs/embassy"]
embassy-executor = "0.1.1"
embassy-macros = "0.1.0"
embassy-sync = "0.1.0"
embassy-time = "0.1.0"
[[bin]]
name = "ble_bas_peripheral"
required-features = ["ble-gatt-server"]
[[bin]]
name = "ble_bas_peripheral_notify"
required-features = ["ble-gatt-server"]
[[bin]]
name = "ble_bas_central"
required-features = ["ble-gatt-client"]
[[bin]]
name = "ble_peripheral_onoff"
required-features = ["ble-gatt-server"]
[[bin]]
name = "flash"
required-features = [] but now I'm getting some compilation errors: $ cargo build
Compiling defmt-macros v0.3.3
Compiling darling_macro v0.13.4
Compiling cortex-m-rt-macros v0.7.0
Compiling num_enum_derive v0.5.7
Compiling nrf-softdevice-s140 v0.1.1
error: cannot find macro `asm` in this scope
--> /Users/redacted/.cargo/registry/src/github.com-1ecc6299db9ec823/nrf-softdevice-s140-0.1.1/src/bindings.rs:1663:5
|
1663 | asm!("svc 44",
| ^^^
|
= help: consider importing this macro:
core::arch::asm
error: cannot find macro `asm` in this scope
--> /Users/redacted/.cargo/registry/src/github.com-1ecc6299db9ec823/nrf-softdevice-s140-0.1.1/src/bindings.rs:1684:5
|
1684 | asm!("svc 45",
| ^^^
|
= help: consider importing this macro:
core::arch::asm
...... |
Not sure if it's still helpful, but here's what I use for my S340 fork. I'm only just learning Rust, so maybe there is a way to shorten this, but 🤷🏽 [package]
name = "myproject"
version = "0.0.1"
description = "Firmware for myproject"
authors = [
"SJ <[email protected]>"
]
edition = "2021"
publish = false
[features]
default = [
"nightly",
"ble-l2cap",
"ble-gatt-server",
"ble-gatt-client",
"ble-sec",
]
nightly = ["embassy-executor/nightly", "embassy-nrf/nightly", "embedded-io/async"]
ble-l2cap = ["nrf-softdevice/ble-l2cap"]
ble-gatt-server = ["nrf-softdevice/ble-gatt-server"]
ble-gatt-client = ["nrf-softdevice/ble-gatt-client"]
ble-sec = ["nrf-softdevice/ble-sec"]
[dependencies]
embassy-futures = { git = "https://github.com/embassy-rs/embassy" }
embassy-executor = { git = "https://github.com/embassy-rs/embassy", features = ["defmt", "integrated-timers"] }
embassy-nrf = { git = "https://github.com/embassy-rs/embassy", features = ["defmt", "nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac"] }
embassy-sync = { git = "https://github.com/embassy-rs/embassy", features = ["defmt"] }
embassy-time = { git = "https://github.com/embassy-rs/embassy", features = ["defmt", "defmt-timestamp-uptime"] }
embedded-io = "0.4.0"
nrf-softdevice = { git = "ssh://myprivatefork", features = ["defmt", "nrf52840", "s340", "ble-peripheral", "ble-central", "critical-section-impl"] }
nrf-softdevice-s340 = { git = "ssh://myprivatefork" }
defmt = "0.3"
defmt-rtt = "0.4"
cortex-m = { version = "0.7.6", features = ["critical-section-single-core"] }
cortex-m-rt = "0.7.0"
panic-probe = { version = "0.3", features = ["print-defmt"] } I'm sure instead of |
Build with nightly version of rust, check rust-toolchain.toml |
@olalonde Did this ever work out for you? |
It would be helpful to have some documentation on how to use this from a separate project. I tried to move out the
examples/
but it doesn't build...I tried removing
path = "../nrf-softdevice"
andpath = "../nrf-softdevice-s140"
fromCargo.toml
but I have more errors:Help appreciated.
The text was updated successfully, but these errors were encountered: