EEPROM 那些事(简单记录)
前言
写此文的缘由是一次小组作业。博主负责查阅资料,因此顺水推舟,稍微整理了一下,放博客上以备不时之需。(毕竟之前也没接触过)
时间匆忙,故比较简略,详细内容后续有机会再补充吧。
前世今生 —— ROM 家族的发展
graph LR
A["ROM"] --> B["PROM"] --> C["EPROM"] --> D["EEPROM"]
写此文的缘由是一次小组作业。博主负责查阅资料,因此顺水推舟,稍微整理了一下,放博客上以备不时之需。(毕竟之前也没接触过)
时间匆忙,故比较简略,详细内容后续有机会再补充吧。
graph LR
A["ROM"] --> B["PROM"] --> C["EPROM"] --> D["EEPROM"]
AD9226是一款单芯片、12位、65 MSPS模数转换器(ADC),采用单电源供电,内置一个片内高性能采样保持放大器和基准电压源。它采用多级差分流水线架构,数据速率达65 MSPS,在整个工作温度范围内保证无失码。
——摘自 ADI网站
认清形势,放弃幻想。
对于一般的 FPGA 来说,编写完 PL 端代码,直接烧录进 FLASH 或固化至 SD 卡相对较容易;但对于 ZYNQ7000 系列来说,却并没有那么简单。
ZYNQ7000 系列的启动流程由 PS 端主导,故当我们固化 PL 时,也必须引入
ARM 核控制的部分。如果你想问有没有不需要 PS
的办法,请看看文章开头的那句话。(为此,我还重装了一次
Vivado)
概括地说,固化程序的流程如下:
flowchart LR
A["建立PL工程"]
B["配置ARM核IP"]
C["生成比特流\nand\n导出硬件"]
D["建立Vitis工程"]
E["生成启动文件"]
F["烧录至\nFLASH\n(或SD)"]
A-->B-->C-->D-->E-->F
Ventoy 是一个提供多系统启动引导支持的开源工具 ,可以帮助我们制作“多合一”U 盘启动盘。
例如,我们可以把 Win To Go、Linux To Go、WinPE、以及各种安装镜像都装进一个 U盘里。
本文主要分享使用 Ventoy 引导的 WTG 制作过程。
ChatGPT 尚未对国内用户开放,对网络有较高要求,故访问时常常会遇到
Access Denied
的问题。
但好在其目前尚未对“通过 API 进行访问” 做出严格的限制,故我们可以采用这种方法进行访问。
该工具可用于去除 Xshell7 / Xftp7 免费版本在关闭时出现的弹窗。
本质上这是一个用 C 语言实现的二进制文件编辑器,能够实现“对二进制文件在编辑前的备份”“对特定序列的搜索与替换”等功能。
近期在编写 MAX30102 的驱动,引用了 Github 上 MAX30102_for_STM32_HAL 这个开源项目的代码。
按照项目说明,只需要自定义一个 max30102_plot()
函数,即可实现传感器读取后的回调调用。但博主实际编写程序后,却发现自定义的回调函数并没有被调用成功。
经过排查,博主发现,这一问题是由于开源代码中 __weak
关键字使用不当导致,故在此分享一下正确使用方式。
近期在使用 STM32H750XBH6 进行一些开发工作,但在使用 CubeMX
配置时钟树时,总是无法将主频设定为 400MHz
以上,报错提示:Frequency searched for is out of range
。
经过一番摸索后,博主终于找到解决方案,故做此记录。
Vivado 自带的编辑器功能非常有限,只有一些简单的代码高亮功能,极大降低了开发者的幸福感。
如果用上巨硬开发的 VS Code ,配合插件,能很好地解决问题。在该神器的加持下,能获取“代码高亮”“语法检查”“自动补全”“定义跳转”“Testbench 生成”等技能。
本文简单记录了配置过程,可供参考。
这几日,手上刚拿到了个 DIY 定制的
U盘,但由于自己的一些探索(作死)行为,U盘成功的寄了。
在抢救过程中,由于U盘采用的主控与颗粒的组合不太常见,在开卡时小坑无数,劳神费时,故有此篇记录。