- 博客(53)
- 收藏
- 关注
原创 示波器使用
使用设备为。1 双探头示波器:指的是 接收两路模拟信号输入(1)探头(2)GND:接地,即示波器要与当前待测设备共地(1)x1档:对当前采集到的信号不做任何处理,输入到示波器(1)x10档:对当前采集到的信号衰减10倍,输入到示波器。
2026-10-19 15:20:46
178
原创 risc-v_2 汇编语言
每个标签 在汇编器中是一个地址常量,它的值就是所在位置的内存地址。标签在汇编器中是一个“段内偏移量常量”。它的值就是所在位置相对于当前段起始地址的偏移。只有经过链接器重定位后,它才变成真正的物理内存绝对地址。字母、数字、下划线 _、点 . 组成;必须以冒号 : 结尾。
2026-10-16 11:01:38
252
原创 risc-v_1寄存器基础
RISC-V 有 32 个通用寄存器(x0 ~ x31),每个宽度为 32 位(RV32)。它们有 ABI 名称和用途:(ABI 名称(ABI Name)是 RISC-V 调用约定中,为每个通用寄存器规定的标准别名)。
2026-10-16 10:37:55
227
原创 2. UART与TTL UART、CMOS UART、RS232、RS422、RS485、tod
数据链路层协议标准在协议层中,规定了数据包的内容,由起始位、主要数据、校验位和停止位组成。双方的数据包格式必须约定一致,才能正常发送和接收数据。
2026-07-14 14:58:41
215
原创 risc-v_0 CPU 基本原理
它介于高级语言(如C、Java)和机器语言(二进制代码)之间,是专门用来直接控制计算机硬件的最贴近底层的一种语言。不同的CPU架构(例如 x86-64、ARM、RISC-V指令集)拥有各自不同的机器指令集,因此其汇编语言也完全不同。
2026-06-08 16:23:54
194
原创 svn使用指南
SVN:(Subversion)是集中式版本控制系统,Git :是分布式版本控制系统TortoiseSVN客户端SVN入门教程其中比较常用的用途为:
2026-06-08 15:46:48
218
原创 c语言编译文件
cproject:C/C++ 项目的“技术说明书/驾照”这是一个针对 C/C++ 项目 (CDT) 的扩展配置文件。它详细记录了:编译配置:定义了 Debug 和 Release 等多种构建配置,并指定各自的编译器、链接器选项。工具链:使用的编译器,如平头哥CDS中的 CSky Elf C Compiler。文件/路径设置:源代码和头文件搜索路径,以及被排除在构建外的文件或目录。
2026-05-08 17:06:04
33
原创 BMC基础概念
SMBus(系统管理总线)是一种基于I2C的双线轻量级通信总线。即SMBus 是基于 I²C 总线发展而来的,可以看作是 I²C 的一个“强化、标准化”的子集。
2026-05-08 11:17:58
73
原创 PCIe 枚举设备 学习
配置空间的头部有两种类型,Type0与Type1,分别给非桥设备(Endpoint),和桥设备(Root和Switch端口中的P2P桥)来使用,配置头部的对比如下图所示。bar0bar1bar2bar3bar4bar5注:Root最先发送的配置请求一定是Type1型的。非桥设备(Endpoint)会直接忽略Type1型的配置请求。
2025-10-21 16:45:10
940
原创 内存屏障\指令屏障
现象:CPU指令乱序、编译器乱序__DSB()指令就可以了。!!!即让DSB指令前面的所有指令完成后再执行后面的指令,即数据同步屏障指令!__DMB()和__ISB()也是可以的。
2025-05-21 10:34:43
270
原创 云架构部署笔记
Nomad是一个管理机器集群并在集群上运行应用程序的工具。Nomad的特点:[1] 支持docker,Nomad的job可以使用将应用部署到集群中。[2] Nomad安装在linux中仅需单一的二进制文件,不需要其他服务协调,Nomad将资源管理器和调度程序的功能集成到一个系统中。[3] 多数据中心,可以跨数据中心调度。[4] 分布式高可用,支持多种驱动形式的工作负载调度,包括Docker容器、虚拟机、原生可执行程序等;
2025-05-21 10:29:34
1133
原创 python与c++交互
参考来自:https://blog.csdn.net/qq_28779503/article/details/70599653。依次点击“项目——配置属性——C/C++——常规”,在“附加包含目录”中加入.h文件所在的文件夹路径。在上述的debug目录下可以看到生成的文件,主要会使用.dll和.lib这两个文件。第4步的含义是,将.dll文件复制到新的项目的Debug目录下。(2)调用python生成的.h文件时,出现:无法打开源文件。需要注意的是,倒数第二步添加库时出现问题,删除cuda即可。
2025-05-21 10:27:52
706
原创 freertos 学习6--定时器
参数:分配给定时器的可读文本名称。这样做纯粹是为了协助调试。RTOS 内核本身只通过句柄引用定时器,而不是通过其名称。定时器的周期。周期以滴答为单位,宏 pdMS_TO_TICKS() 可用于 将以毫秒为单位的时间转换为以滴答为单位的时间。例如,如果定时器必须 在 100 个滴答后过期,则只需将 xNewPeriod 设置为100。或者,如果定时器必须在 500 毫秒之后过期, 则只需将 xTimerPeriod 设置为 pdMS_TO_TICKS( 500 )。
2025-05-21 10:25:06
395
原创 linux 学习之位图(bitmap)数据结构
DOWN,DOEN_DONE,相当于=》u32 state[BITS_TO_LONGS(4)]BITS_TO_LONGS(bits) 计算bits 中有多少个 8 字节(32位)元素;
2025-05-21 09:27:23
367
原创 freertos 学习5--链路状态设置
如果该主机更换了网卡,而其他主机的 ARP 缓存表仍然保留着原来的 MAC 地址。其他主机收到该数据包后,将更新 ARP 缓存表,将原来的 MAC 地址替换为新的 MAC 地址。当一台主机发送了免费 ARP 请求报文后,如果收到了 ARP 响应报文,则说明网络内已经存在使用该 IP 地址的主机。它以广播的形式将数据包发送出去,不需要得到回应,只为了告诉其他计算机自己的 IP 地址和 MAC 地址。netif_set_up()函数一般是在初始化时调用,在netif_add()之后,使能网卡。
2025-02-27 11:49:21
593
原创 Vitis的 xparameters.h文件
逻辑文件不同,vitis 根据xsa创建平台项目时,会在microblaze_0文件夹下生成不同的参数说明文件xparameters.h。
2025-02-17 10:24:40
455
原创 MDM(Microprocessor Debug Module)ip核虚拟窗口
/ 注册示例 CLI 命令// 创建用于访问 UART Tx 的信号量(互斥量)// 创建处理命令控制台的任务xTaskCreate(prvUARTCommandConsoleTask, // 实现命令控制台的任务函数"CLI", // 任务名称,用于调试usStackSize, // 分配给任务的堆栈大小NULL, // 任务参数,这里未使用,传递 NULLuxPriority, // 任务优先级NULL);// 任务句柄,这里未使用,传递 NULL。
2025-02-15 15:36:32
960
原创 freertos 学习4--wip的内存分配
lwip通过Heap的方式可分配的总内存空间大小由MEM_SIZE定义,如果应用程序需要发送大量数据,而且这些数据需要拷贝到lwip协议栈中,那么这个值尽量设置大些。它还会把相邻的空闲内存合并为一个更大的空闲内存,这有助于较少内存的碎片问题。Heap_4 会把相邻空闲内存合并为一个大的空闲内存,可以减少内存的碎片化问题。可用堆空间的总量通过 configTOTAL_HEAP_SIZE(定义于 FreeRTOSConfig.h 中)设置。定义可用的PBUF_POOL的个数。
2024-12-18 09:32:38
501
原创 freertos 学习3---临界区
临界段代码:也叫做临界区,指那些必须完整运行,不能被打断的代码。比如某些外设的初始化。FreeRTOS在进入临界段代码的时候需要关闭中断,当处理完临界段代码以后再打开中断。
2024-12-02 15:17:12
163
原创 Bootloader代码
开发板利用microblaze 跑操作系统,进行一些简单业务管理。因此在开发板固化逻辑时,也需要将操作系统文件固化进去,此时,就需要一个引导程序引导操作系统启动。在固化时,将引导程序与逻辑文件编译成download.bit 作为整体固化。
2024-11-07 09:52:05
329
原创 vitis调试技巧
如何在FPGA MICROBLAZE 上跑petalinuxr然后利用vitis\vivado\进行抓波形(1)vivado 将逻辑.bit、.ltx导入,设置触发点(2)vitis 创建项目vitis --工程 右键(run)—run configration --将.elf文件替换为petalinux的fs-boot。elf文件 —将program FPGA 取消掉勾选----run ,即可在线启动petalinux系统.
2024-11-07 09:43:07
1161
原创 fs_boot代码学习4_copy_image_from_flash函数学习
【代码】fs_boot代码学习4_copy_image_from_flash函数学习。
2024-10-26 11:35:53
178
原创 git 使用指南
场景3 : 刚提交代码,发现别的同事也修改了代码。但是你两修改地方不冲突,怎么尽快解决。会进入到 文本编辑器, 进入insert 模式,然后 将最后一条提交提交记录的。, 意思为,词条提交会报文,只是 将comiit 提交记录 合上一个合二为一。git clone 的账号、密码:18234162461。场景1:如果 刚提交完代码,发现有一个bug没改。场景2 :提交代码后,发现有文件没有传到库上。解决:因为有些文件被忽略,只是存在暂存区。解决方案:修改完新bug后,提交。
2024-10-09 11:12:20
323
原创 MicroBlaze #0 (Cannot resume, MicroBlaze instruction insert overrun
vitis 单步调试时出现下述现象。
2024-09-24 10:39:14
764
2
原创 Kernel panic , not syncing; Attempted to kill init!
petalinux2023.1 版本。vitis 2023.1 版本。还未找到,大家有遇到过吗?
2024-09-24 10:36:33
431
原创 no targets found with “name = “*microblaze*#0“& bscan==“USER2”
逻辑问题,“ MicroBlaze 没有将 MDM 核心连接到 DEBUG 端口。这意味着主机无法通过 JTAG 找到它”
2024-09-24 10:24:26
1590
原创 “Data bus error exception in kernel mode”
注:换了一台编译环境后,该问题消失,但是原编译环境存在该问题。
2024-09-11 10:40:46
288
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅