GithubHelp home page GithubHelp logo

luojia65 / w806-pac Goto Github PK

View Code? Open in Web Editor NEW
49.0 8.0 7.0 218 KB

under development: community SVD file, peripheral access crate in embedded Rust for WinnerMicro W800, W801 & W806 chip

License: Other

Rust 99.96% Logos 0.01% PowerShell 0.04%

w806-pac's Introduction

W806 Rust支持库(外设访问层)

这个项目包含W80x系列芯片的Rust外设支持库。它提供基于寄存器的外设访问支持。文档链接:这里

使用外设访问层支持库,可以在不记忆地址、值含义的前提下,初步调试和访问芯片外设。通常你不会直接使用这个库,而是使用封装好的硬件中间层(有时候叫HAL)库,它会提供更接近高级语言语义的访问方法。

项目仍然在开发中,欢迎各位贡献者参与到项目里来!

Rust支持库说明

嵌入式Rust的生态分为两层:外设访问和硬件中间层。

外设访问层提供一系列的Rust结构体,允许我们通过高级语言的方式访问寄存器,无需记忆复杂的地址和初始值。硬件中间层是对前者的包装,它将寄存器解释为Rust语言的外设概念,方便使用所有权、生命周期的Rust语言检查项,并提供embedded-hal统一抽象接口的实现。

如果您是惯用C语言的开发者——您可以理解为外设访问层相当于头文件,硬件中间层约等于C语言实现文件。

Rust语言的外设访问层可以由svd2rust软件生成。虽然svd文件是ARM的标准,但是我们发现,用它描述其它指令集架构的寄存器外设仍然是合适的。所以在CSKY指令集的Rust支持中,我们仍然选用svd文件来描述我们的外设。

版权

作为开源项目,本项目的SVD文件和Rust源码均遵守Mulan-PSL v2(“木兰宽松许可证,第2版”)开源协议。未尽事宜请详阅协议文件

本项目的贡献者如下,按昵称的字母顺序排序。感谢贡献者们!

apeng2012 <[email protected]>
luojia65 <[email protected]>

w806-pac's People

Contributors

luojia65 avatar apeng2012 avatar

Stargazers

Backwoods Bob avatar Crosstyan avatar  avatar Joey avatar Dino avatar  avatar  avatar nvv13 avatar  avatar  avatar audioman avatar 邓永盛 avatar Evil ZQ avatar paoyung avatar Simakeng avatar Chen Zhicheng avatar Andrey Belvedersky avatar Wei Zhong avatar Yohanes Nugroho avatar Denis Kotlyarov avatar OchimizuHatsuka avatar Mr.Tan avatar  avatar lirc572 avatar westinyang avatar 老董 avatar lfdcn avatar  avatar Jianan avatar chenxuuu avatar Jun Liu avatar wh7f avatar 时雨君 avatar 高庆丰 avatar cz avatar  avatar ASLant avatar  avatar  avatar Wade Song avatar HuakeZhBo avatar  avatar  avatar 来一颗糖 avatar 生命赞歌 avatar Jia Ye avatar  avatar Alex avatar tfx2001 avatar

Watchers

James Cloos avatar  avatar Evil ZQ avatar 时雨君 avatar  avatar paoyung avatar  avatar nvv13 avatar

w806-pac's Issues

任务认领帖

欢迎各位贡献者们参与w806 svd文件项目!

为了避免冲突,请您在为外设编写svd文件前,在此帖下回复您将要编写的外设。同时,在编写下一个外设前,请查看此贴,方便和贡献者们沟通,以及避免重复工作。

如果您是第一次编写svd文件,这里有一个仓库,包含了许多正确编写的svd文件,以供参考:链接;这是一个hi3861芯片的svd文件,供参考:链接

在编写之前,请阅读w800系列芯片的寄存器文档。有时,sdk的c语言头文件也能提供帮助。

再次感谢各位贡献者的支持!

任务列表

  • ADC
  • DMA
  • FLASH
  • GPIO{A,B}
  • I2C
  • RTC、PMU(#3
  • PWM
  • RCC
  • RSA
  • SPI
  • TIMER
  • TOUCH
  • UART[0-6]
  • WDOG

上手

比较看好rust嵌入式 想贡献一点时间在这上面 怎么上手

初学者的疑惑

  1. 这个项目已经结束了吗?我看到最后一次更新是在两天前,还需要志愿者做contribution吗
  2. 作为初学者,我不是很明白我需要怎么做,有大哥可以提供相关的介绍和书籍、资料、链接等吗,例如我不是很明白svd文件是什么,打开看的时候发现是一个XML文件,里面有一些描述,根据README文档猜测这个文件会生成一些Rust代码。我应当去哪里寻找什么样的外设和相关的信息填入呢?

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.