rust-embedded / cortex-a Goto Github PK
View Code? Open in Web Editor NEWLow level access to Cortex-A processors
License: Apache License 2.0
Low level access to Cortex-A processors
License: Apache License 2.0
I'm interested in using this library with Raspberry Pi 2, which is 32-bit. Are there any pointers available on the best way to implement it? Thanks.
Hi, I'm new to this space and came across this repo. Does this have support for BeagleBone Black? If so, do you have any samples to possibly get noobs started? Thanks for any info.
Hi @andre-richter could you please tag each commit that went into the released Crates version?
I believe this should make version tracking at a glance easier.
Currently, we allow any register access without the unsafe
keyword.
However, there are some registers that can potentially compromise Rust's memory safety one way or the other. For example, registers that control virtual memory could be used to install page tables that create aliases which would break Rust's memory safety guarantees.
Manipulating these registers should be guarded with unsafe
to stay true to Rust. However, we ideally need support for this from tock-register-interface
first to pull this off: tock/tock#3244
Hello there,
I'm currently writing some EL2 code and came across some missing registers (MAIR_EL2, TTBR0_EL2, TTBR1_EL2 and TCR_EL2).
It could be interesting to auto generate registers definition from the Arm Exploration tools to be able to provide the full register set.
The name of this crate is not very fitting, I would like to change that.
I want to explore re-releasing this crate and want to brainstorm a better name. For quite some time it has been clear that the crate covers mainly AArch64 CPU register access wrappers and wrappers for trivial assembly snippets containing single or a few machine instructions such as barriers or control flow instructions. And I think that is a good scope that keep.
AArch32 is explicitly intended to play no role so mustn't be considered for the new crate's name.
I am currently thinking about aarch64-cpu
. Any objections to that?
Adding a few users and contributors to get feedback: @berkus @Javier-varez @vbe0201 @raw-bin
Hello,
First of all, I am completely new to embedded development and relatively new to Rust, but I have an ARMv7 board with the Allwinner A20 (Olimex A20 OLinuXinoLime2 to be precise) laying around that I would like to experiment and learn embedded Rust with.
I saw that the PR for the Cortex A working group only mentioned aarch64 while the A20 uses Cortex A7 cores which would be the armv7 target.
Is there any work happening/done for supporting bare metal armv7 yet? Is this something that I should even attempt to work on as someone new to embedded?
Thanks in advance!
I have a system that's running A53 arm core in 32 bit mode. I'm interested in integrating Rust into this environment.
If I understand correctly, this project currently supports only 64-bit cortex-a. Can someone guide me as to what support is required to get 32 bit supported? I might give it a shot... thanks!
Reexport memory barrier funcs from rust-lang/stdarch#557
CC @AGSaidi since this is blocking the release of #38.
Hi @qwandor,
I am in the process of doing a new release (to make #38 public). However, I have a question regarding your PR #37.
When I build with with stable Rust using
cargo build --target aarch64-unknown-none-softfloat --no-default-features
it errors out on the the core intrinsics use in asm.rs:
error[E0658]: use of unstable library feature 'core_intrinsics': intrinsics are unlikely to ever be stabilized, instead they should be used through stabilized interfaces in the rest of the standard library
--> src/asm.rs:96:9
|
96 | core::intrinsics::unreachable()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: add `#![feature(core_intrinsics)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'core_intrinsics': intrinsics are unlikely to ever be stabilized, instead they should be used through stabilized interfaces in the rest of the standard library
--> src/asm.rs:111:9
|
111 | core::intrinsics::unreachable()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: add `#![feature(core_intrinsics)]` to the crate attributes to enable
For more information about this error, try `rustc --explain E0658`.
error: could not compile `cortex-a` due to 2 previous errors
Did you not stumble over these back then, or am I doing something wrong?
This crate currently requires nightly Rust, which as far as I can see is just because of the tock-registers
crate using #![feature(const_fn_trait_bound)]
. I'd like to be able to use at least some parts of the functionality provided by cortex-a
on a stable toolchain. Would it be possible to have the parts that require nightly behind a feature, so the other parts can be used on stable?
What the title says, just wanted to bring it to your attention :)
I'm currently researching changing from EL2 to EL1 on a RaspberryPi 3 (Cortex-A53, AArch64).
I'm using the example found on this stackoverflow post for a starting point:
https://stackoverflow.com/questions/46194098/armv8-changing-from-el3-to-el1-secure
The cortex-a package provides all the necessary register mappings (thank you very much for that). I was wondering if there's a cortex-a library specific way to handle the necessary ERET opcode or if I should just use asm!("ERET");
?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.