Qt的简易日志库实现及封装 Qt的简易日志库实现及封装用于QT的一个简易日志功能模块封装。算不上强大和多高的性能,但是足够简单小巧。用于记录日志到文件够用了。单独的一个文件模块,使用时直接引入源码。想要其他功能,直接改代码即可。C++的下的日志库有很多,如log4cpp、Easylogging++,eplog,g3log,Qt下也有log4qt。还有简单小巧的QsLog,它是一个基于Qt的轻量级开源日志库。
嵌入式系统如何进行测试? 首先,质量是设计出来的,而不是测试出来的。我先说一些我的一些经验,之后想扩展到“嵌入式系统如何保证软件质量?”的问题。因为测试只是方法,质量才是目的。解决问题的思路有如下几个很多情况下不可能完全实现自动化测试或者成本太高,那么就通过 减少进行一次完整测试所用的时间和资源,提高人工测试的效率 将可自动测试的部分从整体中分离出来独立测试,剩下的人工测试 将整个系统分解为多个子系统进行独立的测试 将系统分解为设备相关和设备无关分开测试 设备无关的部分做自动化测试 设备相关的部分人
git重要基本概念 git重要基本概念1.git的工作目录下面的所有文件又分为两种情况:已跟踪和未跟踪。已跟踪:就是你曾经提交过文件或直接从Git仓库克隆下来的那些文件,也就是说对一个新创建的文件进行第一次git的添加,这样文件就有了快照记录后,这文件就转变成已跟踪状态了。 未跟踪:就是新创建的文件没添加过一次,没有之前的快照记录。这两种文件状态和暂存区的关系如图:2.git内目录(这里指的是已跟踪的目录)有三种状态:提交状态:如果是 Git 目录中保存着的特定版本文件,也就是说将暂存区的文件提交到仓库中,就属
RT-thread分析自动初始化机制 首先全局搜索一个任意的自启动宏,便能找到在rtdef.h中由如下定义#define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1")/* pre/device/component/env/app init routines will be called in init_thread *//* components pre-initialization (pure software initilization) */#define INIT
一个经典的单片机供电电路 电路的原理图如下图所示:在电路上电之前。开关"TEST"断开,单片机也没有通过VCC加电。此时,T1的基极通过R9(100k)接地,处于截止状态。T3的基级电阻R7所连接的Test,T1都处于截止状态,所以T3也处于截止状态。电源+9V被T3隔离,没有加载稳压芯片IC2上,IC2的输出VCC保持低电平。▲ 电路关闭状态按动按钮“TEST”启动电路,T3的基极通过R7,Test,T2的b-e接地,从而使得T3导通。此时+9V通过T3加到IC2稳压芯片。IC2输出VCC是加到单.
CRC16 CRC选择当数据帧长度在8bits-128bits范围内时,推荐CRC-8(CRC-8能够减少额外比特的开销,且有更好的性能表现)当数据帧长度在128bits-2048bits范围内时,推荐CRC-12,CRC-16,CRC-CCITT(CRC-12额外比特的开销更小,且用于6bit字符流的传输;对于16bits的标准,更推荐美国标准CRC-16,性能略优于CRC-CCITT);当因数据帧长度更长、信道不稳定等情况而需要更高的性能时,CRC-32、CRC-32C将是更好的选择;CRC简介CR
USB、UART、SPI等总线速率 USB总线 USB1.1:——-低速模式(low speed):1.5Mbps——-全速模式(full speed): 12MbpsUSB2.0:向下兼容。增加了高速模式,最大速率480Mbps。——-高速模式(high speed): 25~480MbpsUSB3.0:向下兼容。——-super speed :理论上最高达4.8Gbps,实际中,也就是high speed 的10倍左右。 UART RS232:传输速率一般不超过20Kbps,速率低,抗干扰能力差,RS-232..
存储相关知识SRAM、DDR4、Quad SPI、Flash、eMMC闪存的介绍与区别 标准SPI标准SPI通常就称SPI,它是一种串行外设接口规范,有4根引脚信号:clk , cs, mosi, misoDual SPI它只是针对SPI Flash而言,不是针对所有SPI外设。对于SPI Flash,全双工并不常用,因此扩展了mosi和miso的用法,让它们工作在半双工,用以加倍数据传输。也就是对于Dual SPI Flash,可以发送一个命令字节进入dual mode,这样mosi变成SIO0(serial io 0),mosi变成SIO1(serial io 1),这样一个时钟周
如何在终端和 PowerShell 中将连续执行命令和一个命令自动重复执行多次 1、在命令行中,我们经常会使用cmd1 && cmd2这样的表达式衔接多条命令,表示如果cmd1执行成功则继续执行cmd2。但是同样的运算符(&&)在PowerShell中却不行。这其实是个简单的语法问题……通过查资料,原来PowerShell有自己的表达方式:-and和-or-and: 左侧命令执行成功(返回true)才继续执行右侧命令-or: 无论左侧命令是否(返回false)都会继续执行右侧命令示例:# Bashcd / && ls
C/C++混合编程中“#ifdef __cplusplus与extern “C“ { #endif” 的理解 在工作中,C、C++密不可分,做我们嵌入式方面的,当然更多的是C,但,有时候却少不了C++,而且是C、C++混搭(混合编程)在一起的,比如,RTP视频传输,live555多媒体播放等都是C++下的,他需要调用JRTPLIB库,所以,很多时候,C++还是蛮不错的。。。。但,*.c与*.cpp文件混搭在一起,不是那么的简单。 #ifdef __cplusplus //c++编译环境中才会定义__cplusplus(plus就是"+"的意思),如果是c++程序,肯定会有__cplusplu...
基于ceedling的软件单元测试(windows) 依赖工具的安装安装rubyhttps://rubyinstaller.org/downloads/ 安装msys2 到网站http://www.msys2.org/下载适合自己主机的安装包,点击安装,在msys2安装完成后使用其内置的pacman包管理器,安装gcc, make,将C:\msys64\usr\bin添加到环境变量中。pacman -S gccpacman -S make安装gcovrpip install gcovr安装测试工具gem install c.
如何使用CMake生成makefile 1、安装了CMake工具2、编写CMakeLists.txt文件子目录:include、src、build(因为生成的文件很多,所以新建一个build文件夹)例子(放在build文件夹里):#1.cmake verson,指定cmake版本cmake_minimum_required(VERSION 3.2)# CMakeLists.txt使用C++11标准add_definitions(-std=c++11)#2.project name,指定项目的名称,一般和项目的文件夹名
Unity C 语言单元测试的构建工具 Ceedling 使用详解 1. 安装 Ceedling展开目录安装 Ceedling 之前,首先需要下载安装Ruby(版本号大于 1.8.6) 和TDM-GCC,安装完成后,即可安装 Ceedling ,打开系统命令行,输入 gem install ceedling 等待直至出现 Successfully installed ceedling-0.28.2 Parsing documentation for ceedling-0.28.2 Done insta...
Windows 下搭建 MSYS2+CMake+VSCode+gdb 编译调试环境 windows 下部署 vscode 的 c++ 调试环境给raspberrylive项目写的,可能有多余步骤安装msys2官网下载安装包中国大陆地区去清华镜像下载安装包和配置软件源:MSYS2 镜像使用帮助环境变量根据自己的安装路径修改MSYS_DIR=C:\msys64MINGW64_DIR=C:\msys64\mingw64Path添加: %MSYS_DIR%\usr\bin;%MINGW64_DIR%\binLogCOPY源改成国内的参考h..