- 博客(8)
- 问答 (1)
- 收藏
- 关注
原创 变量存放指定段
前言开发了一款debug不同芯片的类link工具。不同芯片的具体实现有不同的人员开发实现。那么就有可能出现不同人员修改一份代码的问题,极有可能会导致出现问题。为此采用一种新的方式,将指定的操作放在同一个段内。这样link底层的实现和业务逻辑的实现就彻底的分割出来。旧的实现首先需要在业务逻辑里面实现相应的处理函数,例如下面的代码。void xx1_ops(void) { ...}void xx2_ops(void) { ...}然后在具体的调用函数里通过chip->name来区分
2022-01-08 10:34:40
489
原创 MCU变量加载过程
前言在开发mcu代码的时候经常会有些疑惑,变量是怎么在编译之后进入单片机的ram区的呢,特别是在使用keil开发的时候。后来在接触gcc编译器和自研的mcu后,终于明白了这个问题。实际上变量编译后被放在了bin文件中代码的后面(data存放在bin中,bss在bin里存放了长度信息)。程序运行时会主动将该区域的数据依次加载到ram区域中。原理写完代码编译后,会把code中的data区的变量放在代码的后面,bss区的变量仅存放长度在bin中,当然这个规则也是由链接文件来决定的。示例图如下在程序运行后
2021-12-29 17:30:12
534
原创 android充电架构的分析
前言目前android设备越来越多,对于快速充电和长时间待机的需求就不言而喻。对应于此的就是各大手机厂商不断突破大功率充电新闻频繁的出现。在个人目前遇到的快充方案中,基本上在大的架构下属于同一种类型。故分析记录下来。标题充电简单粗暴点来说就是把电流灌到电池里面去。那么最简单的方法就是直接拿一个电源接在电池的正负极。只要电源电压高于电池电压就可以把电流灌进去。就如同直接打开水龙头开关接水一样。但是这样会存在很多问题。例如:电池此时的电压很小,电源电压很高,一怼上电池上的电流就会变得非常大,很可能烧坏电
2021-12-29 17:21:01
1461
1
原创 串口调试助手-QT
串口调试助手----------该程序使用Qt框架,C ++语言编译而成项目文件介绍:main.cpp 该文件为该程序的入口程序mainwindow.h 该文件为该程序的主要声明部分mainwindow.cpp 该文件为该程序的主要定义部分mainwindow.ui 该文件为该程序的ui界面设计该文件中获取串口是通过读取Wind...
2019-08-19 17:56:18
624
空空如也
android编译错误
2022-07-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人