
计算机基础
文章平均质量分 59
ldhshao
计算机专业
展开
-
GN快速上手
文章目录背景GN快速入门使用GN建立构建环境交叉编译添加tutorial目标BUILD.gn配置说明使用config使用默认配置使用参数了解GN构建过程查找依赖GN文件执行脚本引用背景最近在研究鸿蒙操作系统的开源项目OpenHarmony,该项目使用了GN+Ninja工具链进行配置,编译,于是开始研究GN如何使用。本文的所有信息均来自GN官网和本人个人体会。GN快速入门使用GNGN的主要功能是根据配置文件(.gn, BUILD.gn等)生成build.ninja文件。build.ninja类似于原创 2022-03-12 20:40:19 · 3782 阅读 · 1 评论 -
linux通信程序debug
文章目录问题探索方法1)审查代码方法2)try catch(...)方法3)分析core总结引用问题无人船项目,采集水质数据,上传到云服务器。该功能由ubuntu系统的一个通信程序实现。调试过程中发现在巡航船行驶过程中,会发生通信程序死掉的问题。这种情况是必现的。开发环境如下,cmake管理工程,C语言开发,使用了modbus,mosquitto库。程序中使用了log,每5s flush一次;探索程序死掉,log系统是无法记录的。大体可以从如下角度入手:1)审查代码,分析可疑代码并验证;2)C+原创 2021-07-30 14:44:17 · 182 阅读 · 0 评论 -
ring buffer示例
文章目录概述示例引用概述ring buffer,或者说循环队列,是嵌入式开发中的一个基本模型,常用于命令队列,资源循环分配场合。示例ring_buffer.h ring buffer 封装APItestringbuffer.c 测试ring buffer api.//ring_buffer.h#include <stdlib.h>typedef struct s_ring_buffer{ int tail; int head; int size; int item_si原创 2021-07-30 14:41:20 · 399 阅读 · 0 评论 -
QT Dll使用
文章目录测试思路相同工具下dll测试实现dll实现测试程序实现纯接口dll不同工具下dll测试用vs2015编写dll测试支持相同功能的两个不同dll创建dll测试程序测试思路用qt mingw工具生成dll,用qt测试端测试用VS2015生成dll,用qt测试端测试加载相同dll的不同版本(场景:libusb分win32版本和通用版本,如何一套代码适配两种版本)注:测试环境 win10系统相同工具下dll测试实现dll1)新建工程: 项目 --> Library -->原创 2020-10-22 19:22:30 · 358 阅读 · 0 评论 -
类成员函数的引用
类成员函数的引用场景解决方案继承机制QT信号槽C++11 bind引用场景界面上,钞票宽度以列表形式显示,点击曲线图,弹出钞票宽度的曲线图。曲线图上,要求鼠标点在数据项时,可以显示数据的信息,比如测试名称,命令名称,钞票索引号,宽度值。在循环测试下可以产生钞票宽度数据,在单命令测试也可以产生钞票宽度数据,在历史数据查询中,也会有宽度数据,这些宽度数据都会有一个宽度曲线图。在视线中,宽度曲线图是一个类,循环测试,单命令测试,历史数据查询分别对应三个不同的类,如何从不同的类中获取数据的提示信息呢?解原创 2020-06-25 14:52:42 · 1223 阅读 · 0 评论 -
IOCP调试总结
文章目录编程模型1+n模式1+n+n模式遇到的问题发完成消息延时过长甚至丢失近半年来,采用了IOCP方式处理多连接问题,现在总结一下。编程模型1+n模式一个接受线程R和n个工作线程W组合。接受线程R负责接收新的连接请求,并将该连接的socket绑定到特定的IOCP端口上。工作线程W负责响应收发完成消息,并按通信协议要求发起新的收发请求。工作线程可以有多个。使用时,最好将IOCP端口和...原创 2019-12-20 11:09:54 · 183 阅读 · 0 评论 -
AVL Tree 的实现
http://blog.youkuaiyun.com/zk_sima/article/details/6268127首先 AVL 树是平衡二叉搜索树,所以首先 必须满足搜索树,即l_child值其次 AVL 树是平衡二叉树,他的平衡条件是左右子树的深度之差小于2.而关键问题在怎么计算深度之差。一般的方法都是通过平衡度来衡量的。而平衡度怎么得到呢,一般是通过左右子树的深度差得转载 2016-06-28 14:54:32 · 490 阅读 · 0 评论 -
C语言字节对齐
http://blog.youkuaiyun.com/21aspnet/article/details/6729724/一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐转载 2016-04-30 22:39:42 · 309 阅读 · 0 评论 -
windows系统清理与维护
随着系统中软件的安装,系统越来越庞大,系统中运行了大量不必要的服务。当初军哥告诉我,关闭服务最基本的方法:如果这个服务你不清楚,看看它的依赖关系,若有人依赖它,不要关,否则将其启动类型设为手动,停止服务。我屡试不爽,但有些服务也要格外注意:1.WLAN AntoConfigWLANSVC 服务提供配置、发现、连接、断开与 IEEE 802.11 标准定义的无线局域网(WLAN)的连原创 2015-11-01 11:29:50 · 531 阅读 · 0 评论 -
red hat使用
1.配置网络2.开机自启动命令3.使用本地yum源4.yum使用1.配置网络以root身份登录,输入 setup,选择网络进行配置(设置ip, netgate等)配置文件位置 /etc/sysconfig/network-scripts/ifcfg-eth0,修改boot项 2.开机自启动命令编辑 /etc/rc.local3.使用本地yum原创 2015-11-01 08:11:29 · 494 阅读 · 0 评论 -
linux下svn客户端安装及使用
linux下svn客户端安装及环境配置使用Beyond Compare在linux下进行svn diff 和 svn merge一、svn客户端安装及环境配置.果所在的linux机器上没有安装svn客户端,则首先安装svn客户端:1. subversion-1.4.3.tar.bz2 subversion-deps-1.4.3.tar.bz22. 使用tar转载 2015-11-01 09:08:37 · 2022 阅读 · 1 评论 -
c编程(linux)
1. function declaration isn't a prototypeerror: static void print_dcache_info(); normal:static void print_dcache_info(void); In C int foo() and int foo(void) are different functions. int原创 2015-11-01 08:58:47 · 467 阅读 · 0 评论 -
git使用
git是linux下的分布式版本管理工具,由linus开发。1.查看帮助 git help command2.显示带修改记录的log信息 git log --stat3.修改刚提交的注释 git commit --amend4.获取文件的历史版本 git checkout [commit] [file]5.版本回滚 git reset --h原创 2015-11-01 08:54:58 · 349 阅读 · 0 评论 -
cygwin自动安装工具
自动安装软件工具apt-cyg输入以下命令: svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/ cd /bin vim apt-cyg chmod +x apt-cyg apt-cyg install wget(示例)question:原创 2015-11-01 09:18:00 · 582 阅读 · 2 评论 -
详解C中volatile关键字
http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变转载 2015-11-01 09:05:42 · 422 阅读 · 0 评论 -
无锁编程
在测试ftl的过程中,我们发现spinlock加锁解锁占用了大量的cpu时间,所以开始搜索无锁编程技术。网上资料比较多,比较喜欢的还是coolshell的文章。http://coolshell.cn/articles/8239.html个人总结:1. 线程间同步采用“消费者-生产者”模式:用数组实现,一个线程在一头取,另一个线程在另一头放;相关文献:1.无锁转载 2015-11-01 11:55:43 · 495 阅读 · 0 评论 -
透过 Linux 内核看无锁编程
http://www.ibm.com/developerworks/cn/linux/l-cn-lockfree/转载 2014-08-21 18:09:46 · 613 阅读 · 0 评论 -
路径中斜杠“/”与反斜杠“\”有何区别?
http://wenda.tianya.cn/wenda/thread?tid=78fbf81f55c76dbf正斜杠/slash 表示除法,分隔。在windows系统中通常用来分隔命令行参数,/表示选项等。不能作为文件名。 而在unix系统中,/表示目录。由于web遵循unix命名,所以在网址(URL)中,/表示目录。 反斜杠/backslash,在windows系统中用来表示目录。 计算机操作系统不同 比如Windows本地路径用/ 例如C:/windows/system32原创 2010-10-11 09:51:00 · 811 阅读 · 0 评论