今天起在博客中新开一个“SmartCross 工作日志”分类,用来记录我在 Project SmartCross 项目工作中的思考、遇到的问题、调试过程和解决方法。SmartCross 是我已经断断续续折腾半年的项目,旨在创建一个开源的 Hi-Fi 数字音频分频器平台。我希望在 2022 年的上半年能够基本完成这个项目,达到“可售卖”的状态。
本文将大致介绍 SmartCross 项目的设计理念、架构、当前进展。
继续阅读“SmartCross 工作日志 #0 – 项目概要”Coding Fantasy.
今天起在博客中新开一个“SmartCross 工作日志”分类,用来记录我在 Project SmartCross 项目工作中的思考、遇到的问题、调试过程和解决方法。SmartCross 是我已经断断续续折腾半年的项目,旨在创建一个开源的 Hi-Fi 数字音频分频器平台。我希望在 2022 年的上半年能够基本完成这个项目,达到“可售卖”的状态。
本文将大致介绍 SmartCross 项目的设计理念、架构、当前进展。
继续阅读“SmartCross 工作日志 #0 – 项目概要”SmartCross 的设计目标是“易用”。当前的设想是,将 SmartCross 插到电脑上,电脑就会将其识别成一个网卡+声卡。同时,我们在网卡接口上启动一个 DHCP 服务器,这样电脑可以获得自动分配的 IP 地址,在浏览器中输入 IP 地址即可对设备进行配置。为此,我使用 Linux 内核提供的 f_rndis USB gadget 来连接到主机。在配置 RNDIS gadget 的过程中遇到了一些问题,记录如下。
继续阅读“SmartCross 工作日志 #1 – RNDIS Gadget”近日去计算所实习,所里的网络实在糟糕,但 5G 信号很好,因此萌生了购买一个 5G CPE 用于上网的想法。查阅网上资料得知,VN007+ 这个型号的 CPE 不仅便宜,且性能尚可,因此从二手平台购买了一台。买都买了,当然要拆了。本文记载此机器的拆解过程,并含有机器内部结构高清大图。
继续阅读“联通 VN007+ 5G CPE 拆解”最近在所里的项目需要多个人在同一台服务器上连接 FPGA 进行开发调试。在使用的过程中,观察到一个奇怪的现象:有时在 Vivado 的 Hardware Manager 中,点击 Auto Connect 过后,Hardware 窗格中只出现一个 localhost,而无法找到 JTAG 适配器。本文记述此问题的调试过程和解决方法。
继续阅读“Linux 多用户环境下 Vivado 无法连接 Digilent JTAG 适配器的解决方法”如何在 macOS 上连接 Linux 远程桌面呢?我的答案是:xrdp!
在苹果系统上使用微软的协议来连接 Linux 机器,无疑是一种比较扭曲的行为;但这确实是我目前为止尝试过无数方法中,效果最好的一种。这种方式非常流畅,甚至可以远程播放视频。
在此记录一下我配置 xrdp 时遇到的问题以及解决方案,供大家参考。
继续阅读“在 Linux 下配置 xrdp 的一些经验”ARM 的 Mem Compiler 是 2009 年的古老产品,自带了一个 1.4 版本的 JRE,这个 JRE 依赖一些上古的库,在现代 Linux 下难以找到。本文介绍如何在现代 Linux 环境下运行 ARM Memory Compiler。
继续阅读“在现代 Linux 下运行 ARM Memory Compiler”有 Linux 系统下 MATLAB 使用经验的同学应该知道,MATLAB 在渲染某些字体时可谓奇丑无比(如下图)。除此之外,MATLAB 附带的 JRE 还无法找到中文字体,导致语言设为中文时,界面全部显示方框。本文简要说明这些问题的解决方法。
继续阅读“解决 Debian 11 系统下 MATLAB 字体渲染丑、中文无法显示的问题”计算机组成课程一直使用 Xilinx ISE 作为 Verilog 自动评测工具。最近我们在调研使用 Synopsys VCS 替换 ISE,搭建新的自动化测试平台,在替换的过程中,陈昊同学发现了 VCS 的一个 bug,使得部分老代码在 VCS 上无法正常仿真。通过修改内核来劫持异常逻辑,我成功修复了这个 bug。本文介绍我的探索思路和修复代码。
继续阅读“使用内核模块处理用户进程的异常”本文介绍通过 VXLAN 在局域网中创建一条高性能二层隧道的方法。
继续阅读“在 OpenWrt 设备间使用 VXLAN 创建隧道”编写用户界面逻辑时,我们需要处理用户无效输入,或在某些情况下禁止用户操作。要应对这种意外情况,有两类方法:“先发制人”,隐藏无效操作的按钮或界面元素,让用户根本无法进行无效操作;“坐以待毙”,在用户进行无效操作后,弹出错误提示。本文针对这两种方法的优劣进行讨论。
继续阅读“关于用户无效输入处理的小想法”