GithubHelp home page GithubHelp logo

duskmoon314 / aw-pac Goto Github PK

View Code? Open in Web Editor NEW
24.0 7.0 7.0 4.58 MB

Peripheral access API for Allwinner SoCs generated from unofficial SVD file

License: Apache License 2.0

Rust 100.00% Shell 0.01%
rust embedded pac svd2rust

aw-pac's Introduction

Hello, Profile README

I'm duskmoon (Campbell He), a common PhD student at Tsinghua University

duskmoon's metrics

duskmoon's github stats

Powered by anuraghazra/github-readme-stats

My tech stack

Languages

Type Languages
Currently Using TypeScript Rust
Used to use Python C++

Working on

Windows Ubuntu

Mac

VSC

Currently Working On

d1-pac k510-pac

aw-pac's People

Contributors

antoinevg avatar duskmoon314 avatar renovate-bot avatar renovate[bot] avatar ydrmaster 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

aw-pac's Issues

SVD - D1 v1.0 manual

Hi @duskmoon314

Google recently recommended this project to me when I was looking for the SVD allwinner D1.
I tried to do the same in relation to the manual v1.0 D1-H but had a issue during the extraction.
Do you have a script to extract the manual or is there another way?

Reading and writing with different bit width need to be supported for SPI rx and tx registers

Document of SPI_RXD:

This register can be accessed in the byte, half-word, or word unit by AHB. In the byte accessing method, if there are data in RXFIFO, the top word is returned and the RXFIFO depth is decreased by 1. In the half-word accessing method, two SPI bursts are returned and the RXFIFO depth is decreased by 2. In the word accessing method, the four SPI bursts are returned and the RXFIFO depth is decreased by 4.

These registers respond to different load (lb, lh and lw) and store (sb, sh and sw) instructions in different ways.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

cargo
d1-pac/Cargo.toml
  • riscv 0.10.1
  • vcell 0.1.3
  • critical-section 1.1
  • riscv-rt 0.11.0
r528-pac/Cargo.toml
  • bare-metal 1.0.0
  • vcell 0.1.3
v853-pac/Cargo.toml
  • bare-metal 1.0.0
  • vcell 0.1.3
xr806-pac/Cargo.toml
  • cortex-m 0.7
  • vcell 0.1.3
  • cortex-m-rt 0.7.3
github-actions
.github/workflows/ci.yaml
  • actions/checkout v3
  • actions/checkout v3
  • ubuntu 20.04
.github/workflows/publish.yaml
  • actions/checkout v3
  • katyo/publish-crates v2
  • actions/checkout v3
  • katyo/publish-crates v2
  • actions/checkout v3
  • katyo/publish-crates v2
  • actions/checkout v3
  • katyo/publish-crates v2
  • ubuntu 20.04
  • ubuntu 20.04
  • ubuntu 20.04
  • ubuntu 20.04
.github/workflows/rustfmt.yaml
  • actions/checkout v3
  • ubuntu 20.04

  • Check this box to trigger a request for Renovate to run again on this repository

[TODO] Refactor of the repo

To support more SoC in a more convenient way, it is better to learn from stm32-rs. My goal is to organize the repo into the following structure:

svd
  | peripherals/**.yaml         # peripherals like uart, twi, etc.
  | <soc>_unofficial.yaml       # yaml for patching
  | <soc>_unofficial.svd        # patched yaml
<soc>-pac/                      # crates' meta and generated codes

[d1-pac] `Peripherals::take()` cannot use without `critical-section`

how to call it ? thanks

22   |     let p = pac::Peripherals::take().unwrap();
     |                               ^^^^ `Peripherals` is not an iterator
     |
    ::: /home/youngday/.cargo/registry/src/mirrors.ustc.edu.cn-12df342d903acd47/d1-pac-0.0.28/src/lib.rs:1751:1
     |
1751 | pub struct Peripherals {
     | ---------------------- doesn't satisfy `Peripherals: Iterator`

Fix katyo/publish-crates

After katyo/publish-crates used cargo metadata to extract information, it seems unable to publish one package without checking the whole workspace.

Roadmap to d1-pac/v0.1.0

TODO

more detailed description of registers

Here are the peripherals I haven't added a detailed description of registers

  • THS
  • IOMMU
  • DSP_MSGBOX
  • RISC_V_MSGBOX
  • RTC
  • TCON_LCD0
  • TCON_TV0
  • TVE_TOP
  • TVE
  • CSIC
  • TVD_TOP
  • TVD0
  • I2S_PCM
  • DMIC
  • OWA
  • AudioCodec
  • USB1
  • PWM

peripherals with no detailed description in the user manual

  • de (seems can get from tina-linux)
  • dramc (don't know where to get yet)
    • msi + memc 0x03102000-0x03301fff
  • ...

check all names

  • Use the same naming convention in peripherals, registers, fields, and enumerates.

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.