自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zoomdy's blog

嵌入式系统

原创 Rust中的常量、变量、mut变量

Rust的常量 Rust的常量和C语言中的常量基本一样,常量只能赋值编译时就能计算出来的表达式,不可以是函数返回值、变量的计算值等。 Rust的常量必须指定类型。 Rust的常量要求使用大写字母,如果使用小写字母,会产生编译警告。C语言中一般会使用大写字母定义宏,Rust的常量和C语言中的常量宏...

2020-05-22 11:44:01 50 0

原创 Rust的宏与C语言的宏

宏可以说是C语言的双刃剑,C语言中的宏提供诸多便利,但同时也带来了很多陷阱。 Rust保留了宏的概念,但是比C语言的宏有了不少改进。 宏与函数的区别 无论在Rust中,还是C中,宏都可以实现函数的作用。 但是在C语言中,函数式的宏和真正的函数是难以区分的,即调用函数式的宏和调用真正的函数的形式是一...

2020-05-22 11:43:41 50 0

原创 外设的驱动模式:中断、轮询

驱动程序的基本形式是中断模式。 关闭中断可以形成轮询模式。 轮询模式可以是忙等待轮询和择机轮询。 忙等待持续轮询状态,直到完成,这期间主循环不能处理其它事务。 择机轮询检测到未完成时将退出,转而处理其它事务,当有空闲时再次轮询,需要借助状态机实现保存和恢复上下文。 中断配合操作系统形成挂起等...

2020-05-19 13:10:13 46 0

原创 使用国内镜像解决 Rustup 和 Cargo 连接超时问题

sh.rustup.rs 连接超时解决办法 wget https://cdn.jsdelivr.net/gh/rust-lang-nursery/rustup.rs/rustup-init.sh sh rustup-init.sh Rustup 连接超时解决办法 RUST安装慢怎么办,使用镜像...

2020-05-09 10:29:24 176 0

原创 对并发的思考

并发分成伪并发和真并发 伪并发系统只有一个处理器,但执行多个任务,在某个瞬间,处理器只能执行一个任务,为了“同时”执行多个任务,将多个任务快速的来回切换,只要速度足够快,就会感觉这几个任务是同时执行的。从宏观上讲,伪并发是并发的,从微观上讲,伪并发是串行的。 真并发有多个处理器,在某个瞬间是有多...

2020-03-13 09:42:18 63 0

原创 协程的本质

协程是简化状态机设计的一种工具。 协程编程表面上看起来与多线程编程很相似。 协程与多线程有着本质的区别: 协程不会抢占,任务之间是协作式的,多线程的任务之间往往是抢占式的。 协程没有上下文切换,协程只有函数的进入和退出,没有多线程的上下文切换。 协程没有调度器,任务间的协调完全由应用来决定。 ...

2020-03-13 09:26:27 94 0

原创 SOT-23、SOT-223封装的三极管、MOS管

SOT-23、SOT-223封装的三极管、MOS管 SOT-23 三极管 无论是PNP还是NPN,1脚为基极,2脚为发射极,3脚为集电极。 MOS 管 无论是P沟道还是N沟道,1脚为栅极,2脚为源极,3脚为漏极。 SOT-223 三极管 无论是PNP还是NPN,1脚为基极,3脚为发射极,2、4...

2020-01-07 13:29:30 1402 0

原创 天线的种类

天线的种类弹簧天线棒状天线PCB天线板载天线陶瓷天线玻璃钢天线 弹簧天线 低成本。直接焊在PCB上。 棒状天线 比较常见。一般SMA接头。也有引线加IPEX接头。 PCB天线 一般IPEX接头。 板载天线 PCB天线的一种,讲天线与电路的其它部分制作在同一块PCB上,蓝牙通常使用这种天线。 ...

2019-12-25 10:14:35 194 0

原创 Windows 7 通用 CDC 串口驱动程序

Windows 7 通用 CDC 串口驱动程序 Windows 7 自带 CDC 串口类设备的驱动程序文件 usbser.sys,所缺的是驱动配置文件 usbser.inf 文件,将 Windows 10 的 usbser.inf 文件拷贝到 Windows 7,注释掉 SourceDisksN...

2019-11-02 22:22:12 1635 0

原创 RV-LINK:NucleiStudio 使用 RV-LINK 调试 RISC-V 程序

NucleiStudio 本质上是 Eclipse,按照 Eclipse 的做法就可以了。

2019-09-28 10:56:53 279 0

原创 RV-LINK:Eclipse 使用 RV-LINK 调试 RISC-V 程序

Eclipse 使用 GDB Hardware Debugging 类调试配置使用 RV-LINK,JTAG Device 选择 Generic Serial,GDB Connection String 填入 RV-LINK 串口号。

2019-09-28 10:56:31 375 0

原创 RV-LINK:GDB 使用 RV-LINK 仿真器调试 RISC-V 程序

准备作为仿真器的开发板,下载 GDB,安装 USB 串口驱动,将 RV-LINK 烧入开发板,于是开发板变身 RISC-V 仿真器!

2019-09-28 10:56:08 799 1

原创 RV-LINK:将 Longan Nano 开发板变成 RISC-V 仿真器

Longan Nano 烧入 RV-LINK 固件,将 Longan Nano 开发板变成 RISC-V 仿真器。

2019-09-28 10:55:40 499 0

原创 RV-LINK:将 GD32VF103C-START 开发板变成 RISCV-V 仿真器

将 RV-LINK 固件烧入 GD32VF103C-START,将 GD32VF103C-START 变成 RISC-V 仿真器。

2019-09-28 10:55:07 713 0

原创 RV-LINK:用RISC-V开发板做RISC-V仿真器

用基于RISC-V的MCU开发板来实现RISC-V的仿真器,取名RV-LINK。用 GD32VF103C-START 和 Longan Nano 实现了调试功能,可以调试 GD32VF103。

2019-09-25 22:25:43 1196 4

原创 RV-LINK:GD32VF103 问题:JTAG 引脚重映射、TAP 链定义等

在开发 RV-LINK 过程中发现的 GD32VF103 存在的问题。

2019-09-25 21:18:44 205 0

原创 RV-LINK:输出非预期响应向 GDB 报告错误

通过返回非预期的响应,GDB 将会检测到非预期响应,并报告响应的内容,可以利用这个特性,向 GDB 报告错误。

2019-09-12 14:29:09 143 0

原创 RISC-V GCC:-specs=nano.specs 的作用

nona.specs 将 `-lc` 替换成 `-lc_nano`,使有精简版的C库替代标准C库,可以减少最终程序映像的大小。

2019-09-11 09:50:36 690 0

转载 RISC-V:__global_pointer$

The linker uses the `__global_pointer$` symbol definition to compare the memory addresses and, if within range, it replaces absolute/pc-relative addr...

2019-09-10 16:30:47 447 0

原创 RISC-V:-mcmodel=medlow vs -mcmodel=medany

`-mcmodel` 对 RV32 没什么影响,对 RV64 有影响。不指定 `-mcmodel` 的情况下,默认是 `medlow`。对于 RV32,不用刻意指定 `-mcmodel`。

2019-09-10 15:46:53 514 0

原创 截获 GDB 与 OpenOCD/GDB Server 之间的数据

可以用 socat ,也可以用 GDB 的 remotelogfile 截获 GDB 与 OpenOCD 之间的数据。

2019-09-04 08:46:51 313 0

原创 RV-LINK:实现时注意事项

实现 RV-LINK 时的注意事项。想到一条在这里记录一条。

2019-09-02 10:33:58 201 0

原创 用 screen 做串口终端

screen /dev/ttyACM0 115200

2019-09-01 18:43:38 786 0

原创 Linux 下 USB 抓包

使用 usbmon、tcpdump、wireshark 实现 USB 抓包。

2019-09-01 18:31:19 110 0

原创 RISC-V 借助CSR实现不修改工具链扩展指令

通常来讲,扩展指令集是要修改工具链的,至少也要修改汇编器和反汇编器。然而借助CSR可以实现不修改工具链扩展指令集的目的。

2019-08-31 20:09:44 498 0

转载 RISC-V Machine Mode 和 User Mode 相互切换

M模式下使用mret指令进入U模式,U模式下使用ecall指令进入M模式。

2019-08-31 19:40:26 713 0

原创 RV-LINK:JTAG 接口和时序

JTAG 接口和时序在 IEEE 1149.1 中定义,包括 TCK、TMS、TDI、TDO 四根信号线。

2019-08-28 13:50:40 826 0

转载 Protothreads:一个“蝇量级” C 语言协程库

协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。

2019-08-14 14:22:05 280 0

原创 并发调度

硬件级并发调度(硬件线程)、系统级并发调度(线程)、应用级并发调度(协程)。

2019-08-14 11:51:59 164 0

原创 Renode 常规命令和实例命令

Renode 有两种类型的命令,一种是常规命令,另一种是通过 C# 实例导出的命令。常规命令使用 help 命令查看帮助,实例导出命令直接输入实例名称就可以查看帮助,关键得知道有哪些实例被导出了。

2019-07-12 10:40:42 149 0

原创 开源模拟器 Renode 初体验

Renode 是开源的模拟器,可以模拟 Cortex-M、RISC-V 等微控制器,不仅可以模拟 CPU指令,还可以模拟外设,甚至可以模拟板载的外设。官网:https://renode.io/ 。指令模拟器使用 C 语言编写,外设模拟器使用 C# 语言编写,兼顾了运行效率和开发效率。

2019-07-11 17:28:30 403 0

原创 Renode:通过插件(plugin)导入自定义外设

Renode 的 include 命令可以动态加载 .cs 文件,使用这个特性可以导入自定义外设,可以自行编写 Renode 安装包未包含的外设,然后通过 include 命令导入就可以使用了。

2019-07-11 17:09:28 173 0

原创 水表、电表红外通信接口、光学接口、红外光口

红外通信包括:38KHz调制通信,无调制通信,IrDA通信,表计类应用使用38KHz调制通信和无调制通信。

2019-07-09 15:22:08 597 0

转载 浅谈38K红外发射接收编码

浅谈38K红外发射接收编码 https://blog.csdn.net/gmdjmawy/article/details/47129989 http://blog.sina.com.cn/s/blog_4ca9659e0101i9nn.html 转自Doctor_A 坛友的笔记! 之前做接触过一次...

2019-07-05 17:23:31 640 0

原创 总线供电通信技术

两根线既提供电力又提供通信信道。

2019-07-04 16:44:29 551 1

原创 误区:软件没有磨损?

是的,软件不会磨损,但是软件存储的介质是会磨损的!

2019-07-01 08:55:04 149 0

原创 外设寄存器窗口的注意事项

很多 IDE 都提供了外设寄存器窗口,在调试外设驱动时可以方便地观察外设寄存器的变更加快外设驱动的调试过程,但是外设寄存器窗口显示的值也是从外设寄存器读过来的,而有些外设寄存器的读取操作是有副作用的,例如读取状态寄存器可能会清除状态位,状态位被外设寄存器窗口的读取过程清除了之后,程序去读取状态寄存...

2019-05-30 10:22:59 120 0

原创 Protothreads 子线程返回执行结果的办法

Protothreads 支持层次化线程,可以在线程中调用并等待子线程,就像函数调用子函数一样。但是有个缺憾,函数返回值被 PT 占用作为线程状态,无法通过函数返回值返回子线程的执行结果,只能使用其它办法返回执行结果。

2019-05-30 09:26:34 130 0

原创 嵌入式系统开发过程:总体认识

1、做什么?2、怎么做?3、做!

2019-05-24 17:28:12 443 0

原创 仪表物联网化的4种方式

可以选择网关,也可以选择通信模组;网关可以是外置的,也可以是内置的。

2019-05-22 14:47:41 306 0

提示
确定要删除当前文章?
取消 删除