WSL2
工程创建流程 vitis打开硬件描述(xsa)所在目录 create application project create a new platfrom hardware(xsa) 选中你的xsa文件 选择自己需要的工程模板(这里用的lwip udp client perf) 选择设置bsp lwip设置如下 去ps工程里添加数学库
无标题
# WSL2一键安装命令(自动启用功能、下载发行版、设置默认版本为2)wsl --install# 查看可安装的 WSL 分发版(可选)wsl --list --online# 简写wsl -l -o# 安装指定分发版wsl --install -d Ubuntu-22.04wsl --export Ubuntu-22.04 D:\WSL\Ubuntu-22.04.tarwsl --unregister Ubuntu-22.04wsl --import Ubuntu-22.04 d:\WSL\Ubuntu_2204\ d:\WSL\Ubuntu-22.04.tar --version 2
无标题
wsl2的快照与回滚查看已安装的系统wsl -l -v NAME STATE VERSION* Ubuntu Running 2 docker-desktop Stopped 2 做快照wsl --export Ubuntu F:\WSL-bak\wsl-ubuntu.tar 回滚注销当前系统wsl --unregister Ubuntu 回滚wsl --import D:\WSL\Ubuntu F:\WSL-bak\wsl-ubuntu.tar --version 2 # 安装的哪个版本的就写哪个版本的(比如我安装的是Ubuntu-24.04)ubuntu2404 config --default-user USERNAME
WSL2
常用功能端口转发一次配置,可以实现 Windows端口==WSL端口 在WINDOWS用户目录下创建一个.wslconfig文件 [wsl2]localhostForwarding=true PS 如果Windows本地启动了指定端口, 这时WSL中可以使用相同的端口, 但是localhost:port 将指向Windows的服务 也可以直接在wsl的设置里将网络模式选择为Mirrored vhdx 内存优化导入Hyper-V# 启用Hyper-V功能(如果需要)Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All# 导入Hyper-V模块Import-Module Hyper-V 运行优化命令optimize-vhd命令需要在管理员权限的PowerShell中运行,并且需要Hyper-V模块支持。 optimize-vhd -Path "D:\00.wsl\ext4.vhdx" -Mode full windows...
无标题
vscodemakefile使用python的compiledb生成compile_command.jsonuv pip install compiledbcompiledb make bearmake clean && bear -- make .clangdCompileFlags: # arm-none-eabi-gcc 的 driver,让 clangd 用 GCC 头文件搜索路径 Compiler: /opt/toolchains/arm-gnu-toolchain-14.3.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-gcc Add: - --target=arm-none-eabi Remove: # libclang 不认的 GCC-only 参数,去掉避免假报错 - --inline - -mcpu=* - -mthumb* - -l* - -fdata-sections - -ffunction-sections
RTOS System
RTOS 实时操作系统MOSI/MISO loopbackMOSI(Master Out Slave In)和 MISO(Master In Slave Out)是 SPI 总线的两条数据线。Loopback 指的是将 MOSI 和 MISO 物理上短接(或在软件中模拟),这样主机发送的数据会直接回到主机的接收端。在没有真实 SPI 从设备的情况下,可以用 loopback 测试 SPI 主机的收发流程、FIFO、回调等功能是否正常。 任务优先级设置#define TASK_PRIORITY_PAYLOAD (tskIDLE_PRIORITY + 4)#define TASK_PRIORITY_HEARTBEAT (tskIDLE_PRIORITY + 1)/* ... */int userTaskStack = TASK_PRIORITY_PAYLOAD;TaskHandle_t userTask = xTaskCreateStatic( &user_task_entry, ...
zynq base
AXI(Advanced eXtensible Interface)AXI:Advanced eXtensible Interface(高级可扩展接口) AXI 总线是连接 PS(Processing System,处理器系统,即 ARM 核心) 和 PL(Programmable Logic,可编程逻辑,即 FPGA 部分) 的核心桥梁。它并不是一条单一的物理总线,而是一套高性能、高带宽、低延迟的片上总线接口标准。通过 AXI 总线,ARM 核心可以像读写内存一样控制 FPGA 中的自定义 IP 核,而 FPGA 中的 IP 核也可以直接访问 DDR 内存或外设。 Zynq 中 AXI 的三种主要接口类型为了满足不同的数据传输需求,AXI 规范在 Zynq 中衍生出了三种具体的接口类型: AXI4 (AXI4-Full) 特点: 高性能、高带宽。支持突发传输(Burst Transfer),即只需给出首地址,就可以连续读写最多 256 个数据。 应用场景: 适用于需要大批量数据搬运的场景,例如视频流传输、DMA(直接内存访问)控制器、高速缓存(Cache)与...
无标题
BCM8915x BootLoader面向第一次接触本仓库的开发者。目标:用最短路径搞懂「这颗芯片是怎么从上电跑到应用固件的」,以及代码是怎么组织的。 0. 先建立大局观BCM8915x 是一颗多核 SoC: 核 角色 Cortex-M7 引导核。本仓库的代码就跑在它上面(BootLoader) Cortex-A55 ×N 应用核(跑大系统 / Linux 等) MCU0 / MCU1 其它 M 系列协处理核 BootLoader 的使命:上电后把自己跑起来 → 初始化 DDR → 依次从 flash 加载各个核的镜像并放它们出复位(release from reset)→ 最后加载 M7 主应用固件并把控制权交出去(handover),自己退场。 一句话记住整条链(细节见第 2 节): 上电 → 复位向量 → EarlyInit → 启动 RTOS → BOOTSRV_TaskFunc → 初始化 DDR → 加载并启动 A55 → 启动 MCU1 → 加载 M7 主固件 → 跳转交权 1....
