kicad运行时出错,_Pnext->_Myproxy = nullptr;访问内存出错解决措施

前面分析到可能是编译的原因导致编译出来的库有问题,所以想着尝试重新编译dll库看能不能解决这个问题。

虽然报错的时候是指向了libprotobufd.dll,但是通过对整个过程的分析,认为出错的地方是abseil库,所以这里先尝试重新编译abseil库,如果还有问题再重新编译libprotobufd看是否还有问题。

将vcpkg下载的源码包拷贝到一个单独的工程目录中解压出来,然后使用visual studio 打开。

然后点击生成->生成xxx.dll库。

一开始用visual studio 打开这个源码工程的时候,并没有生成xxx.dll库的选项,后来用cmake-gui去配置的时候发现提示了build shared libs not set。

# /enable build share lib
set(BUILD_SHARED_LIBS ON)

于是修改了该目录下的CMakeLists.txt,添加set(BUILD_SHARED_LIBS ON) 就可以了,重新编译出dll库后,将它替换kicad目录下的abseil_dll.dll,再双击可执行程序。

终于可以成功打开了,重新去debug原来调用的函数,分析这个过程,做好问题的闭环验证。

从debug的过程来看,原来不正常变量现在都正常了

<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg"> <!-- 背景和边框 --> <rect width="800" height="600" fill="#f9f9f9" stroke="#333" stroke-width="1"/> <!-- 标题 --> <text x="400" y="30" font-family="Arial" font-size="20" text-anchor="middle" font-weight="bold">导热性测试装置电路原理图</text> <!-- 电源模块 --> <g transform="translate(100, 100)"> <rect width="150" height="120" fill="#e6f7ff" stroke="#1890ff" stroke-width="1.5" rx="5" ry="5"/> <text x="75" y="30" font-family="Arial" font-size="16" text-anchor="middle" font-weight="bold">电源模块</text> <!-- USB接口 --> <rect x="20" y="60" width="20" height="30" fill="#ddd" stroke="#666"/> <text x="10" y="75" font-family="Arial" font-size="12" text-anchor="end">USB</text> <!-- 稳压器 --> <rect x="60" y="50" width="40" height="40" fill="#fff" stroke="#666"/> <text x="80" y="70" font-family="Arial" font-size="12" text-anchor="middle">AMS1117-5.0</text> <!-- 滤波电容 --> <circle cx="120" cy="65" r="5" fill="#fff" stroke="#666"/> <text x="120" y="75" font-family="Arial" font-size="10" text-anchor="middle">100μF</text> <!-- 输出 --> <line x1="140" y1="65" x2="150" y2="65" stroke="#666" stroke-width="1.5"/> <text x="155" y="70" font-family="Arial" font-size="12">5V</text> </g> <!-- 主控模块 --> <g transform="translate(325, 100)"> <rect width="150" height="180" fill="#fff0f0" stroke="#f5222d" stroke-width="1.5" rx="5" ry="5"/> <text x="75" y="30" font-family="Arial" font-size="16" text-anchor="middle" font-weight="bold">主控模块</text> <!-- MCU --> <rect x="35" y="60" width="80" height="80" fill="#fff" stroke="#666"/> <text x="75" y="100" font-family="Arial" font-size="12" text-anchor="middle">STM32F103C8T6</text> <!-- 晶振 --> <rect x="15" y="110" width="20" height="15" fill="#fff" stroke="#666"/> <text x="25" y="120" font-family="Arial" font-size="8" text-anchor="middle">8MHz</text> <!-- 电源连接 --> <line
06-13
### 导热性测试装置电路原理图设计 导热性测试装置的电路原理图通常包含多个关键模块,例如电源模块、主控模块以及传感器接口模块。以下是关于这些模块的详细信息: #### 1. 电源模块 电源模块的设计需要确保为整个系统提供稳定且可靠的电压。常见的元件包括AMS1117-5.0稳压器,用于将输入电压转换为稳定的5V输出[^1]。此外,还需要添加滤波电容以减少电源噪声,推荐使用10μF和0.1μF的陶瓷电容并联连接在稳压器的输入和输出端[^2]。 ```python # 示例:电源模块的Python伪代码表示(仅作参考) def power_module(input_voltage): # AMS1117-5.0稳压器处理 output_voltage = 5.0 # 稳定输出电压 return output_voltage ``` #### 2. 主控模块 主控模块的核心通常是微控制器单元(MCU),如STM32F103C8T6。该芯片具有高性能的ARM Cortex-M3内核,支持多种外设接口,适用于复杂的控制任务[^3]。为了实现高效的导热性测试,可以通过GPIO引脚与外部传感器或执行器进行通信,并利用其内置的ADC功能采集温度数据[^4]。 ```c // 示例:初始化STM32F103C8T6 GPIO引脚的C语言代码 void GPIO_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 启用GPIOA钟 GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; // 配置PA0引脚 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出模式 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; // 设置速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化GPIOA } ``` #### 3. SVG格式的原理图 SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,适合用于绘制电路原理图。可以使用专业的EDA工具(如KiCad、Eagle等)生成SVG格式的原理图文件[^5]。以下是一个简单的SVG示例,展示如何定义基本的矩形形状: ```xml <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"> <rect x="10" y="10" width="80" height="80" style="fill:blue" /> </svg> ``` 通过上述方法,可以将电源模块、主控模块以及其他相关组件整合到一个完整的SVG原理图中[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值