(Translated by https://www.hiragana.jp/)
GitHub - Mac-Rsh/mr-library: mr-library is a lightweight framework designed for embedded systems. The resource and performance requirements of embedded system are fully considered. Providing standardized open (open), close (close), control (ioctl), read (read), write (write) and other interfaces.
Skip to content

mr-library is a lightweight framework designed for embedded systems. The resource and performance requirements of embedded system are fully considered. Providing standardized open (open), close (close), control (ioctl), read (read), write (write) and other interfaces.

License

Notifications You must be signed in to change notification settings

Mac-Rsh/mr-library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MR かまち

English



简介

MR かまち专为嵌入かんにゅうしきけい统设计的轻量级框充分じゅうぶんこう虑了嵌入かんにゅうしきけい统在资源性能せいのう方面ほうめんてき需求。 つう提供ていきょう标准てき设备管理かんりせっこう,极大简化りょう嵌入かんにゅうしき应用开发てき难度,帮助开发しゃ快速かいそく构建嵌入かんにゅうしき应用ほどじょ

かまち为开发者提供ていきょうりょう标准てき开启(open)、关闭(close)、ひかえせい(ioctl)、读(read)、うつし(write) とうせっこう。它将应用ほどじょあずかそこ层硬けん驱动进行かい耦。应用ほどじょ无需了解りょうかい驱动てき实现细节。 とうかたけん发生あらため变时,ただ需要じゅよう适配そこ层驱动,应用ほどじょ就可以无缝迁うつりいたしんかたけんじょう。这大だいひさげだかりょう软件てき重用じゅうようせい应对しんかたけんてき扩展せい


项目结构图


关键特性とくせい

  • 标准てき设备访问せっこう
  • 应用ほどじょ驱动开发かい
  • 简化そこ层驱动和应用ほどじょ开发
  • 轻量やす上手じょうず,资源うらないようひく
  • かたぎ块化设计,各部かくぶ分解ぶんかい耦合并独立どくりつ开发,极低てきかたけん迁移成本なりもと
  • 支持しじざいはだかつくえ环境操作そうさけい统环さかい使用しよう

主要しゅよう组成

  • 设备かまち提供ていきょう设备访问标准せっこう
  • うちそん管理かんり:动态ないそん管理かんり
  • 工具こうぐ:链表、队列、平衡へいこう树等常用じょうようすうすえ结构
  • かく类功のう组件

标准设备せっこう

设备てき所有しょゆう操作そうさどおり过以せっこう实现:

せっこう 描述
mr_dev_register ちゅうさつ设备
mr_dev_open 开设备
mr_dev_close 关闭设备
mr_dev_ioctl ひかえせい设备
mr_dev_read 从设备读取すうすえ
mr_dev_write こう设备うつしいれすうすえ

しめせれい

int main(void)
{
    /* 开SPI1总线てきSPI10设备 */
    int ds = mr_dev_open("spi1/spi10", MR_O_RDWR);
    
    /* 发送すうすえ */
    uint8_t wr_buf[] = {0x01, 0x02, 0x03, 0x04};
    mr_dev_write(ds, wr_buf, sizeof(wr_buf));
    
    /* 接收せっしゅうすうすえ */
    uint8_t rd_buf[4] = {0};
    mr_dev_read(ds, rd_buf, sizeof(rd_buf));
    
    /* 关闭设备 */
    mr_dev_close(ds);
}

とくえき于标じゅん设备せっこう所有しょゆう设备支持しじ msh 设备命令めいれいつう过命れいぎょう完成かんせい所有しょゆう设备操作そうさ

设备命令1

设备命令2


配置はいち工具こうぐ

MR 提供ていきょう Kconfig 视化配置はいち工具こうぐ,开发しゃ无需深入ふかいり了解りょうかいげんだい码即进行配置はいち

Kconfig かいすえ配置はいちぶんけん生成せいせい配置はいち选项界面かいめん。开发しゃ以通过简单的操作そうさらい选择需要じゅよう启用てきこうのう组件设置しょう关参すう

配置工具1

配置工具2

つう过修あらためさんすう快速かいそくさい剪所需功のう配置はいち完成かんせいきさきどおりPython 脚本きゃくほん生成せいせい配置はいちぶんけん


录结构

名称めいしょう 描述
bsp いた支持しじつつみ
components 组件
device 设备ぶんけん
document ぶん
driver 驱动ぶんけん
include 库头ぶんけん
source 库源ぶんけん
Kconfig 配置はいちぶんけん
LICENSE 许可证
kconfig.py 配置はいち脚本きゃくほん
tool.py 动构けん脚本きゃくほん

设备/组件支持しじいち览表

设备/组件 计划 预览 稳定 ぶん
ADC [√] [√]
CAN [√]
DAC [√] [√]
I2C [√] [√]
Soft-I2C [√] [√]
Pin [√] [√]
PWM [√] [√]
Serial [√] [√]
SPI [√] [√]
Timer [√] [√]
msh [√] [√]
LCD [√]
Senser [√]

开始使用しよう

验证Python环境

验证けい统是いやあんそうPython环境。ざい命令めいれいぎょうちゅう运行 python --version 检查Python版本はんぽんMR 脚本きゃくほん工具こうぐ赖Python ,わか无Python环境请自ぎょうあんそう,暂不支持しじ3.11.7以上いじょうてき版本はんぽん)。

はた项目导入工程こうてい

  1. Gitee ある Github 仓库载最新版しんぱん本源ほんげん码到本地ほんじ

  2. はたみなもと码复せいいた您工ほど所在しょざいてき录。以 MDK 工程こうてい(CubeMX生成せいせいてき标准工程こうてい)为例:

    CubeMX工程

  3. はた bsp 录中对应しんへんてき驱动复制いた driver(请仔细阅读bspなかてきぶん档):

    Driver目录

  4. うつりじょ需要じゅようてきぶんけん bspdocument录(如不需要じゅようGIT也可以移じょ.gitぶんけん)。完成かんせいきさきもく录结构如しょしめせ

    工程目录

  5. 使用しよう动构けん脚本きゃくほん完成かんせい动构けんざい mr-library みちみち开命れいぎょう工具こうぐ,运行 python tool.py -b

    MDK为例:

    MDK自动构建

    ちゅう

    • 支持しじMDK5Eclipse
    • MDKさき编译ある版本はんぽん过低可能かのう导致GNU配置はいちしつ败。

配置はいちさい单选项

  1. ざい mr-library 录下开命れいぎょう工具こうぐ,运行 python tool.py -m 进行さい配置はいち

    配置工具1

    运行しつ败:

    • 检查Python版本はんぽん(暂不支持しじ3.11.7以上いじょうてき版本はんぽんじゅうしんあんそう并删じょやめあんそうてき块)。
    • 命令めいれいぎょう工具こうぐ支持しじ,推荐使用しようpowershell(win10及以じょう)git bash(较新版本はんぽん)ひとし
  2. 选中 Device configure かい车进にゅうさい单,配置はいちこうのう

    配置工具2

  3. 配置はいち完成かんせいきさき,按 Q 退出たいしゅつさい配置はいち界面かいめん,按Y 保存ほぞん配置はいち脚本きゃくほんはた生成せいせい配置はいちぶんけん

    自动配置工具

  4. 工程こうていちゅう引入 #include "include/mr_lib.h" 并在 main 函数かんすうちゅう添加てんか mr_auto_init(); 动初はじめ函数かんすうそく开始使用しよう

ちゅうさら命令めいれい输入:python tool.py -h 查看。


さきらいてん个灯吧

#include "include/mr_lib.h"

/* てい义LED引脚(PC13)*/
#define LED_PIN_NUMBER                  45

int main(void)
{
    /* 动初はじめ */
    mr_auto_init();

    /* 开PIN设备 */
    int ds = mr_dev_open("pin", MR_O_WRONLY);
    /* 设置いたLED引脚 */
    mr_dev_ioctl(ds, MR_IOC_PIN_SET_NUMBER, MR_MAKE_LOCAL(int, LED_PIN_NUMBER));
    /* 设置LED引脚为推挽すいばん输出しき */
    mr_dev_ioctl(ds, MR_IOC_PIN_SET_MODE, MR_MAKE_LOCAL(int, MR_PIN_MODE_OUTPUT));

    while(1)
    {
        /* てんあきらLED */
        mr_dev_write(ds, MR_MAKE_LOCAL(uint8_t, 1), sizeof(uint8_t));
        mr_delay_ms(500);
        mr_dev_write(ds, MR_MAKE_LOCAL(uint8_t, 0), sizeof(uint8_t));
        mr_delay_ms(500);
    }
}

Hello World

#include "include/mr_lib.h"

int main(void)
{
    /* 动初はじめ */
    mr_auto_init();

    /* 开Serial-1设备 */
    int ds = mr_dev_open("serial1", MR_O_RDWR);
    /* 输出Hello World */
    mr_dev_write(ds, "Hello World\r\n", sizeof("Hello World\r\n"));
    
    while(1);
}

现在您已经完成かんせいりょうにゅう门教ほど,开始使用しようMR库吧

  1. 参考さんこうさら教程きょうてい
  2. 尝试もと于某款芯へん开发驱动,练习设备驱动编程。
  3. 尝试编写さら设备ばん开发さら多功たこうのう
  4. 欢迎您提出ていしゅつ见和けん议。如果您对开发ゆう兴趣,诚邀您参与さんよいた MR目的もくてき开发ちゅう,项目交流こうりゅうぐん:199915649(QQ)。

About

mr-library is a lightweight framework designed for embedded systems. The resource and performance requirements of embedded system are fully considered. Providing standardized open (open), close (close), control (ioctl), read (read), write (write) and other interfaces.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published