《痞子衡嵌入式半月刊》 第 75 期

Posted 痞子衡嵌入式

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《痞子衡嵌入式半月刊》 第 75 期相关的知识,希望对你有一定的参考价值。

痞子衡嵌入式半月刊: 第 75 期

这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。

本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。

上期回顾《痞子衡嵌入式半月刊: 第 74 期》

唠两句

历史上的今天:2001年4月9日,由美菱公司研制的中国第一台纳米冰箱在合肥问世。

本期共收录 4 个项目、1 个工具,希望对你有帮助!

项目类

1、Wasp-os - 基于nRF52系列微控制器的智能手表固件

Wasp-os 是一款基于 nRF52 系列微控制器的智能手表固件,特别适用于黑客友好型手表,如Pine64 PineTime。Wasp-os 具有完整的心率监测和步数支持,以及多个时钟面,秒表,闹钟,倒计时计时器,计算器和许多其他游戏和实用程序。所有这些可以访问 MicroPython REPL 进行交互调整、开发和测试。

2、OpenWrt - 针对嵌入式网络设备的 Linux 操作系统

OpenWrt 项目是一个针对嵌入式设备的 Linux 操作系统。OpenWrt 没有尝试创建一个单一的静态固件,而是提供了一个具有包管理的完全可写的文件系统。这使用户可以从供应商提供的应用程序选择和配置中解脱出来,并允许用户通过使用包来定制设备以适应任何应用程序。对于开发者来说,OpenWrt 是一个无需构建完整固件就能构建应用程序的框架;对于用户来说,这意味着完全定制的能力,以从未想象过的方式使用设备。

3、NVM - 全开源nV级测量仪表

纳伏特表是一种具有灵敏度、噪声和稳定性的电压表,可以将电压分解到纳伏特。商用纳伏表确实存在,比如 Keithley 2182A 型或 Keysight 34420A 型,但价格高昂,所以 DIY 设计肯定有它的一席之地。该项目是 xDevs nVm 挑战赛 唯一完赛作品,设计过程全记录,相关文件全开源。

4、Embox - 复用Linux开源组件的RTOS

Embox 是为资源受限和嵌入式系统设计的可配置实时操作系统。Embox 的主要思想是在没有 Linux 的情况下使用 Linux 软件。

工具类

1、JITX - 支持通过编写代码方式生成PCB设计

JITX 可以帮助用户自动进行电路设计、元件选择、元件建模、引脚分配、几何约束、原理图绘制和详细的原理图验证。在系统级别上进行设计,并将其余部分自动化。

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:第一本Git命令教程- 转移(add/rm/mv)


  今天是Git系列课程第四课,上一课我们在Git空间里做了一些文件改动并且知道了如何利用Git查看这些变动,今天痞子衡要讲的是将这些变动提交到Git本地仓库前的准备工作。

  Git仓库目录下的文件改动操作默认都发生在Git工作区内,Git并不会主动管理。如果希望Git能够管理这些变动,你需要主动通知Git。共有3种通知Git的命令(git add/rm/mv),痞子衡为大家一一讲解。

1.将工作区文件改动添加到暂存区git add

  git add是第一种通知Git命令,这个命令用于告诉Git我们新增了文件改动,被git add命令操作过的文件(改动)便会处于Git暂存区。

1.1添加单文件改动git add [file path]

  上一节课我们已经在工作区创建了3个文件,让我们开始用git add将它们一一添加到暂存区:

// 将main.c,test.c, dummy.c分别添加到暂存区
[email protected] MINGW64 /d/my_project/gittest (master)
$ git add main.c

[email protected] MINGW64 /d/my_project/gittest (master)
$ git add app/test.c

[email protected] MINGW64 /d/my_project/gittest (master)
$ git add app/dummy.c

// 查看此时的文件状态,3个文件都已在暂存区中了
[email protected] MINGW64 /d/my_project/gittest (master)
$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   app/dummy.c
        new file:   app/test.c
        new file:   main.c

1.2添加文件夹内全部改动git add -A [folder path]

  有没有觉得git add [filepath]一次只能添加一个文件不够高效?别急,你还可以按文件夹来提交。这时我们再做一些改动,将dummy.c文件删除,将test.c文件里的内容全部删除,再新增一个名叫trash.c的文件。

[email protected] MINGW64 /d/my_project/gittest (master)
$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   app/dummy.c
        new file:   app/test.c
        new file:   main.c

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    app/dummy.c
        modified:   app/test.c

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        app/trash.c

  让我们试试git add -A [folderpath],执行完这个命令后,我们可以看到app/文件夹下的所有类型的文件改动(新增、修改、删除)被一次性地存储到了暂存区,这下是不是效率高了很多。有兴趣的朋友还可以继续研究git add .(不包括删除操作)和git add -u(不包括新增操作)两个命令,实际上git add -A是这两个命令的并集。

[email protected] MINGW64 /d/my_project/gittest (master)
$ git add -A app/

[email protected] MINGW64 /d/my_project/gittest (master)
$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   app/trash.c
        new file:   app/test.c
        new file:   main.c

2.将暂存区文件改动退回git rm

  git rm是第二种通知Git命令,这个命令用于告诉Git我们想把之前用git add添加的文件改动从Git暂存区里拿出去,不需要Git记录了。拿出去有两种拿法,一种是从暂存区退回到工作区,另一种是直接丢弃文件改动。让我们试着将test.c退回到工作区,trash.c直接丢弃。

2.1退回文件改动到工作区git rm --cache [file path]

[email protected] MINGW64 /d/my_project/gittest (master)
$ git rm --cache app/test.c

rm 'app/test.c'

[email protected] MINGW64 /d/my_project/gittest (master)
$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   app/trash.c
        new file:   main.c

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        app/test.c

2.2直接删除文件git rm -f [file path]

[email protected] MINGW64 /d/my_project/gittest (master)
$ git rm -f app/trash.c

rm 'app/trash.c'

[email protected] MINGW64 /d/my_project/gittest (master)
$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   main.c

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        app/

3.将暂存区文件移动位置/重命名git mv

  git mv是第三种通知Git命令,这个命令用于告诉Git我们想把之前用git add添加的文件直接在暂存区里重新命名或移动到新位置。让我们试着将main.c重命名为app.c,并移动到app/文件夹下。

3.1文件重命名git mv [src file] [dest file]

[email protected] MINGW64 /d/my_project/gittest (master)
$ git mv main.c app.c

[email protected] MINGW64 /d/my_project/gittest (master)
$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   app.c

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        app/

3.2移动文件位置git mv [src file] [dest dir]

[email protected] MINGW64 /d/my_project/gittest (master)
$ git mv app.c app/

[email protected] MINGW64 /d/my_project/gittest (master)
$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   app/app.c

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        app/test.c

以上是关于《痞子衡嵌入式半月刊》 第 75 期的主要内容,如果未能解决你的问题,请参考以下文章

《痞子衡嵌入式半月刊》 第 2 期

《痞子衡嵌入式半月刊》 第 10 期

《痞子衡嵌入式半月刊》 第 40 期

《痞子衡嵌入式半月刊》 第 42 期

《痞子衡嵌入式半月刊》 第 33 期

《痞子衡嵌入式半月刊》 索引