自定义博客皮肤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

嵌入式系统

  • 博客(312)
  • 资源 (17)
  • 收藏
  • 关注

原创 Javascript的补充:Typescript、Rust、C/C++

浏览器只支持Javascript和WebAssembly,所以作为Javascript的补充,要么能够转换成Javascript,要么能转换成WebAssembly。补充Javascript的出发点有三:一、重复利用已经有的代码;二、为了避开Javascript是动态类型的坑;三、为了保密。

2020-12-06 16:45:19 654

原创 Linux下多个node版本共存

让多个版本的node在linux下共存,并且可以随意使用其中一个版本的node。

2020-12-04 16:01:08 2638 1

原创 Javascript脱离回调地狱,利用生成器串行处理业务逻辑

当一个业务逻辑要有多次数据库操作时,使用回调函数的方式处理显然是地狱,利用ES6 生成器(generator)可以脱离回调地狱,使用串行的方式编写代码,而代码的执行依然是异步的。生成器可以实现直观的同步控制流,又不损失异步执行的高效率。

2020-12-04 15:54:49 252

原创 抓取嵌入式网络设备的以太网数据包

Hub 买不到,交换机抓不到,需要带端口监测功能的路由器才能抓到。

2020-11-21 19:22:28 1264 2

原创 解决eCos系统的lwIP存在的bug,该bug导致TCP重发失效,最终导致TCP拒绝服务

跑 eCos + lwIP 的设备作为 TCP 服务器,在网络不繁忙不丢包的情况下,一切正常,在网络繁忙会出现丢包的情况下,重试几次后 TCP 拒绝服务(对 SYN 包都不会有任何响应, ping 功能可能正常也可能无响应),其它任务正常。原因是少了一个定时器,TCP 超时处理需要定时器。

2020-11-21 18:53:31 1873 2

转载 Tex数学公式及字符

Tex数学公式,可以直接在 CSDN 中使用,太棒了!

2020-09-10 21:48:38 3331

原创 离散傅里叶变换的核心公式

连续傅里叶变换公式、离散傅里叶变换公式、欧拉公式。

2020-09-10 21:35:08 12298 2

原创 使用 gnuplot 绘制离散序列以及 DFT 结果

gnuplot 是个强大的绘图工具,用它绘制各种曲线再好不过了,包括绘制数字信号处理中的离散序列,以及各种变换的结果序列。

2020-09-09 17:36:51 536

原创 开源的嵌入式系统开发工具

得益于开源软件的发展,完全可以基于全开源软件做嵌入式系统开发。

2020-09-09 10:17:05 709

原创 可以跑Linux的RISC-V计算机、微型电脑、单板机

RVBoards-D1-哪吒 某宝有售,搜索 rvboards 即可,699RMB。VisionFive 昉·星光线上发售,售价1100RMB。HiFive Unmatched 售价665美元。

2020-09-08 16:53:15 4259 2

原创 RISC-V 整数寄存器(x0~x31)与浮点寄存器(f0~f31)数据交换

RV32F、RV64F、RV64D 都有 fmv 指令可以做数据交换,RV32D 没有 fmv 指令可用,需要特殊处理。

2020-09-08 15:07:33 2541

原创 数字滤波器:FIR和IIR

传统的线性数字滤波器一般有两种类型,有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。

2020-09-02 10:18:11 1871

原创 国产MCU,Cortex-M和RISC-V核心

国产MCU,Cortex-M和RISC-V核心

2020-08-07 16:07:07 11426 1

转载 PCB设计中的SDRAM辐射干扰对策

某些使用外置SDRAM的STM32应用客户反映其产品在EMC测试中,存在由于SDRAM信号导致辐射干扰超标的问题。在终端产品中如果不能用机壳屏蔽辐射干扰,那么这类问题往往需要通过修改SDRAM信号的PCB设计来解决。

2020-07-27 10:40:43 1073

原创 用函数指针来实现状态机

状态机的基本实现手段是`switch case`语句,不过也可以用函数指针来实现

2020-07-10 21:06:46 1617

原创 使用SPI操作JTAG的两种方案

MCU没有可以直接操作JTAG的外设,一般情况下,可以使用IO模拟来操作JTAG,但是IO模拟速度比较慢。SPI是与JTAG最接近的外设,可以使用SPI来加速JTAG的操作。然而SPI的4根信号(CS、SCK、MISO、MOSI)与JTAG的4根信号(TCK、TMS、TDI、TDO)并不对应,所以不能直接使用,还要一些特殊的处理。

2020-06-20 10:21:33 4340 1

原创 Rust的枚举还实现了C语言的联合(union)的特性

Rust的枚举特性还实现了C语言的联合的特性,这在一些情况下,可以简化代码。下面这段Rust定义枚举的代码:enum Message { Quit, Move { x: i32, y: i32 }, Write(String), ChangeColor(i32, i32, i32),}参考:Enum Values在C语言中相当于以下代码:typedef enum{ Quit, Move, Write, ChangeColor}MessageType;

2020-06-05 13:35:25 1771

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

Rust的常量Rust的常量和C语言中的常量基本一样,常量只能赋值编译时就能计算出来的表达式,不可以是函数返回值、变量的计算值等。Rust的常量必须指定类型。Rust的常量要求使用大写字母,如果使用小写字母,会产生编译警告。C语言中一般会使用大写字母定义宏,Rust的常量和C语言中的常量宏差不多。参考Differences Between Variables and ConstantsRust的变量Rust的变量只能赋值一次,但与常量不同,变量可以赋值运行时才能计算的表达式,可以是函数返回

2020-05-22 11:44:01 1468 1

原创 Rust的宏与C语言的宏

宏可以说是C语言的双刃剑,C语言中的宏提供诸多便利,但同时也带来了很多陷阱。Rust保留了宏的概念,但是比C语言的宏有了不少改进。宏与函数的区别无论在Rust中,还是C中,宏都可以实现函数的作用。但是在C语言中,函数式的宏和真正的函数是难以区分的,即调用函数式的宏和调用真正的函数的形式是一样的。而在Rust中,调用函数式的宏和调用真正的函数的形式是相区分的,如果将宏作为函数来调用,那么宏名的后面要加感叹号,例如最经常出现的 println!,比C语言多出来的感叹号明确了这是一个宏而不是函数。代码

2020-05-22 11:43:41 1077

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

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

2020-05-19 13:10:13 674

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

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

2020-05-09 10:29:24 6269 1

原创 对并发的思考

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

2020-03-13 09:42:18 279

原创 协程的本质

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

2020-03-13 09:26:27 615

原创 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脚为集电极。有些封装2脚伸出可焊接,有些封装2脚悬空。MOS 管无论是P沟道还是N沟道,1脚为栅...

2020-01-07 13:29:30 29553

原创 天线的种类

天线的种类弹簧天线棒状天线PCB天线板载天线陶瓷天线玻璃钢天线弹簧天线低成本。直接焊在PCB上。棒状天线比较常见。一般SMA接头。也有引线加IPEX接头。PCB天线一般IPEX接头。板载天线PCB天线的一种,讲天线与电路的其它部分制作在同一块PCB上,蓝牙通常使用这种天线。陶瓷天线贴片安装。陶瓷介电常数较PCB板高,所以使用陶瓷天线能有效缩小天线尺寸;在介电损耗方面,...

2019-12-25 10:14:35 2531

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

Windows 7 通用 CDC 串口驱动程序Windows 7 自带 CDC 串口类设备的驱动程序文件 usbser.sys,所缺的是驱动配置文件 usbser.inf 文件,将 Windows 10 的 usbser.inf 文件拷贝到 Windows 7,注释掉 SourceDisksNames 和 SourceDisksFiles 部分就可以作为 Windows 7 的 CDC 串口类...

2019-11-02 22:22:12 28348 13

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

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

2019-09-28 10:56:53 1011

原创 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 1756 1

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

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

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

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

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

2019-09-28 10:55:40 2025 1

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

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

2019-09-28 10:55:07 2488

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

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

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

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

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

2019-09-25 21:18:44 2545 1

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

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

2019-09-12 14:29:09 1265

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

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

2019-09-11 09:50:36 8734

转载 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 addressing with gp-relative addressing, which makes the code more efficient.

2019-09-10 16:30:47 3876

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

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

2019-09-10 15:46:53 4043

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

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

2019-09-04 08:46:51 1601

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

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

2019-09-02 10:33:58 886 1

原创 用 screen 做串口终端

screen /dev/ttyACM0 115200

2019-09-01 18:43:38 5254

ScratchJr Android app 1.2.5

ScratchJr是一种入门编程语言,小朋友(5-7岁)可以用它创作互动故事和游戏。

2021-02-02

exFAT file system specification.pdf

已添加书签,根据 https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification 导出 PDF ,Extended File Allocation Table。

2019-10-28

《开放指令集与开源芯片发展报告》(已创建书签)

《开放指令集与开源芯片发展报告》(已创建书签)中国开放指令生态(RISC-V)联盟 2019 年 1 月发布,主要内容包括:1 前言;2 开放指令集与开源芯片的兴起;3 RISC-V 开放指令集生态现状;4 MIPS 开放生态现状;5 开源芯片发展现状;6 业界动态;7 各国战略计划与项目部署;8 挑战、机遇与未来发展方向;9 总结。

2019-01-17

eSIM卡/贴片式SIM卡规格/规范/数据手册

eSIM卡/贴片式SIM卡规格/规范/数据手册,封装和引脚定义。ETSI TS 102 671 V9.0.0

2017-05-19

物联网白皮书(带书签2016版)

物联网白皮书(带书签2016版)

2017-04-22

工业互联网体系架构报告(带书签1.0版)

工业互联网体系架构报告(带书签1.0版)

2017-04-22

《信息物理系统白皮书(2017)》(带书签电子版)

《信息物理系统白皮书(2017)》(带书签电子版)

2017-04-22

Linux设备驱动程序(第3版)(英文版)(已添加书签)

Linux设备驱动程序(第3版)(英文版)(已添加书签)Linux Device Drivers, Third Edition

2016-03-21

UNIX系统V第4版程序员指南:XWIN图形窗口系统Xlib-C语言界面

UNIX系统V第4版程序员指南:XWIN图形窗口系统Xlib-C语言界面,已添加书签

2014-12-05

Linux系统版,eCos配置工具,支持多仓库

eCos配置工具,支持多仓库。 同一配置文件可以同时使用多个组件仓库内的组件。

2014-10-11

eCos配置工具,支持多仓库,支持中文字符显示,支持第三方编译器

eCos配置工具,支持多仓库,支持中文字符显示,支持第三方编译器。 由官方eCos配置工具修改而来,eCos官方网址:http://ecos.sourceware.org/,修改后的源代码可以从这里获得:http://configtool.zoomdy.org/,eCos中文技术网:http://www.52ecos.net,eCos中文技术网QQ群:144940146。

2014-10-11

Eclipse RCP深入浅出(原书第2版)配套源代码

《Eclipse RCP深入浅出》配套源代码。 《Eclipse RCP深入浅出》内容简介:Eclipse不只是一个单纯的流行IDE,其Rich Client Platform(RCP)插件几乎是所有桌面应用程序的坚实基础,从聊天应用程序到前端的企业级应用程序,不一而足。《Eclipse RCP深入浅出》清楚展示了Eclipse RCP的细枝末节,全程实录了如何借助于Eclipse RCP设计、编码和打包优秀的Java应用程序。

2014-01-07

eCos组件——中断堆栈信息获取支持

该eCos组件提供中断堆栈信息的获取,包括堆栈基址、分配空间大小、已使用大小,主要用于中断堆栈溢出的风险评估,依据堆栈的使用情况对堆栈空间分配进行调整。 组件安装和使用请阅读http://blog.csdn.net/zoomdy/article/details/16970395。 eCos是开源免版税的抢占式实时操作系统。其最大亮点是可配置,与其配套的图形化配置工具提供组件管理、选项配置、自动化单元测试等。eCos官网 http://ecos.sourceware.org,eCos技术网 http://www.52ecos.net,eCos技术网QQ群144940146。

2013-11-26

eCos案例之HelloWorld

包括2个epk组件包,一个是公共包,处理生成应用程序的公共选项,一个是Hello包,为经典的Hello World工程,包括一个名为hello的模板。为博文 http://blog.csdn.net/zoomdy/article/details/12908559 的配套附件。

2013-10-21

《学习 MISRA C》系列连载讲座

第一讲:“‘安全第一’的 C语言编程规范”,简述 MISRAC的概况。 第二讲:“跨越数据类型的重重陷阱”,介绍规范的数据定义和操作方式,重点在隐式数据类型转换中的问题。 第三讲:“指针、结构体、联合体的安全规范”,解析如何安全而高效地应用指针、结构体和联合体。 第四讲:“防范表达式的失控”,剖析MISRAC中关于表达式、函数声明和定义等的不良使用习惯,最大限度地减小各类潜在错误。 第五讲:“准确的程序流控制”,表述 C语言中控制表达式和程序流控制的规范做法。 第六讲:“构建安全的编译环境”,讲解与编译器相关的规范编写方式,避免来自编译器的隐患

2010-06-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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