自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (22)
  • 收藏
  • 关注

原创 GoogleTest进阶——参数测试、Mock测试、耗时测试、类型测试

本次文章以一个真实业务中的`进程管理类`测试的过程中遇到的问题和解决办法,覆盖了`参数测试`、`Mock接口测试`、`接口耗时测试`这三个方面,会简单的提及`类型测试`。并且配合VSCode的CMake Tools插件,快捷而方便的进行`进程管理类`的测试。...

2022-05-20 16:37:31 4684 6

原创 从零开始写专利

本文从零基础开始,深入讲解了专利是什么,专利有什么特点,专利怎么写,专利怎么答复。最后一一个工作中的实际专利从零开始如何构思,如何组织专利点。完成了一个手把手教你从开始写专利的教程。

2022-04-30 21:54:53 7550 2

原创 基于Vue的快速入门web开发

这是一篇为了只会后端语言,但是想快速上手前端代码的人准备的快速入门文章。

2022-02-24 20:53:40 4304 4

原创 VSCode加速自动补全和跳转语句,实现秒补全和秒跳转

1 你是否有如下问题,如果遇到过如下困难,可以参考一下本文章觉得VSCode的自动补全功能很鸡肋,经常是自己敲了个首字母等了好久才跳出来,还不如自己打完。觉得VSCode的跳转功能在遇到代码很多的情况下,也需要等待很久,体验很差,甚至可以去泡杯咖啡。VSCode用久了后,觉得自己的C盘空间越来越小,空间越来越不够用了。如果以上问题你都感同身受,那么如果你符合以下一个条件,那么就能实现秒跳和秒补全你是否有一个编译服务器或者性能高的服务器/电脑,如果有,那么恭喜你。如果没有,有兴趣的话可以继续

2020-09-04 10:47:34 18997 9

原创 一种基于VSCode的嵌入式开发的Windows平台可视化代码调试方法

一种基于VSCode的嵌入式开发的可视化代码调试方法关键字: VSCode、gdbserver、可视化调试、嵌入式开发案例简述随着本组业务的扩大,新进组员的增多,在开发定制或者排查基线的问题时候,经常会遇到问题不是那么明显,不方便通过加打印的方式进行排查的问题,并且加打印排查的方式较为低效,使得调试过程极为痛苦。可视化调试效率一直比命令行调试要方便和快捷很多,而嵌入式开发由于目标程序在开发板上,而不在编写代码本身的环境中,这样的程序运行环境和编译环境分离的情况,导致普通的集成开发环境并不能满足

2020-05-29 00:26:36 1171

原创 符合目标平台的交叉编译链制作及简单分析

符合目标平台的交叉编译链制作及简单分析关键字: 交叉编译、工具链、ARM、gcc bug 项目或工作中存在的的问题 由于本组使用的现有交叉编译工具链为网上下载的工具链,名称为arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar,由他人制作而成。平时常使用其中的arm-none-linux-gnueabi-gcc并未出现错误,而最近使用其中的arm-none-linux-gnueabi-g++程序时,发现程序中使用STL库则无法通

2020-05-19 00:32:07 880

原创 GoogleTest入门——从搭建到主要功能案例介绍

GoogleTest入门——从搭建到主要功能案例介绍关键字: 单元测试、gtest、测试夹具、gmock、C++ 案例简述 由于本组在开发的过程中,单元测试这个环节做得欠佳,主要测试方式停留在手动测试和功能性测试上,并未引入自动化测试工具。鉴于对于高质量的代码是开发的关键,所以为自己开发的实用类与工具类进行完善的单元测试则显得尤为重要。开发完成的类拥有对应的单元测试类作为辅助,每次进行修改的时候,均需要对单元测试类进行重新构建与运行,以确保修改和新增的功能不对已有功能产生影响。本组主开

2020-05-16 15:15:45 2399

原创 Docker快速入门

Docker让部署更容易,实现了程序、环境和用户数据之间的完全分离。而对于软件开发或者运维而言,充分的解耦无疑是带来了巨大的维护优势。

2023-07-01 12:54:57 734

原创 产品经理的日常感悟

一些产品经理岗位的日常感悟,为后续继任者提供参考和借鉴,避免少走弯路

2023-06-12 23:28:35 158

原创 基层软件开发管理心得

基层软件开发管理心得,写在即将离开基层管理岗位的前一周。

2023-03-14 10:56:43 226 1

原创 ARM交叉编译入门及交叉编译第三方库常见问题解析

交叉编译简单说来,就是编译成果物的地儿不是你运行这个成果物的地儿。最常见的场景,就是我们要编译一个 `ARM版本` 的可执行程序,但我们编译这个 `ARM版本` 可执行程序的地方,是在一个 `x86_x64` 的平台上。

2023-02-14 18:05:46 4907

原创 Web服务无法响应但本地业务正常的故障排查记录

现场反馈我们的设备存在不定时的情况下,会出现Web服务无法正常访问的情况。经过简单的现场排查,发现了呈现以下特点:a. 重启设备后,无法正常访问的情况能够解除。b. 在出现问题的时候,设备本身的与WEB无关的业务是能够正常运行的.c. 在出现问题的时候,有时候只是WEB服务无法访问,有时候所有通过私有协议交互端口均无法访问。d. 在出现问题的时候,即便是有时候所有通过私有协议交互端口均无法访问的场景,过很长时间后,通过配置工具的连接还是能够恢复正常的,但WEB服务只要坏过就无法恢复了。

2022-10-21 22:07:13 1056

原创 Web数据流的一生——从前端界面到后端数据,以及万级QPS的后台服务搭建

Web数据流的一生——从前端界面到后端数据,以及万级QPS的后台服务搭建

2022-08-11 17:56:12 1445

原创 基于C++11的代码审核常见问题清单

在实际业务开发的过程中,经常发现有些缺陷反复出现,这里总结出业务中常见的问题进行归纳,以便警示大家的同时,为后续开发质量提高用做帮助。此清单的意图是为了提高本组代码质量和开发水平。 序号 缺陷描述 缺陷举例 缺陷造成的程序影响 1 入参在函数中仅作为查找使用,但将入参值传递 int Search(ComplicatedClass cc); 值传..

2022-02-22 14:35:40 951

原创 Effective Modern C++ Item 42 考虑置入而非插入

如果你有个容器,持有一些,比如说,`std::string`型别的对象,那么似乎合乎逻辑的做法是用某个插入函数`insertion function`来向其中添加新元素,比如`insert`,`push_front`和`push_back`,又或者对于`std::forward_list`而言的`insert_after`,而传递给函数的元素型别将是`std::string`。毕竟,那正是容器持有物的型别。

2021-12-04 19:37:04 1072

原创 C++多线程编程介绍,技巧及注意要点---Part3

PPT源文件下载地址

2021-11-19 22:07:18 346

原创 Effective Modern C++ Item 41 针对可复制的形参,在移动成本低并且一定会被复制的前提下,考虑将其按值传递

C++中的每一项通用技术或特性,都会在某些情况下使用,而在另一些情况下则不适用。一般而言,描述通用技术或者特性的适用情况才顺理成章,但本章却反其道而行之,描述了两种例外情况。通用技术指的是按值传递,而通用特性则是置入(emplacement)。想做出是否采用它们的决定,须面对诸多影响因素,而我能够提供的最佳建议则是需要考虑他们其实是有适用场景的。话虽如此,这两者可都是高效现代C++程序设计的重要角色,下面的条款为在评价它们是否适用你的软件这方面提供了参考信息。方法一:重载有些函数的形参本来就是打算拿.

2021-10-21 19:54:07 343

原创 Effective Modern C++ Item 40 对并发使用std::atomic,对特种内存使用volatile

可怜的volatile。被误解到如此地步。它甚至不应该出现在本章中,因为它与并发程序设计毫无关系。但是在其他程序设计语言中(例如 Java 和 C# ),它还是会对并发程序设计有些用处。甚至在C++中,一些编译器也已经把volatile投入了染缸,使得它的语义显得可以用于并发软件中(但是仅可能用于使用这些编译器进行编译之时)。因此,除了消除环绕在它周围的混淆视听外,没有什么其他的理由值得在关于并发的一章中讨论volatile。程序员有时会把volatile与绝对属于本章讨论范围的另一C++特性混淆,那.

2021-09-18 21:17:34 324

原创 C++多线程编程介绍,技巧及注意要点---Part2

PPT下载地址详见 传送门

2021-09-18 19:53:15 134

原创 Effective Modern C++ Item 39 考虑针对一次性事件通信使用以void为模板型别实参的期值

有时候,提供让一个任务通知另一个以异步方式运行的任务发生了特定的事件的能力,会很有用,原因可能是第二个任务在事件发生之前无法推进。这事件也许是某个数据结构完成了初始化,也许是某个计算阶段结束了,又也许是某个重要传感器取值被检测到了等等。在此情况下,用什么方式完成线程间通信会是最佳的呢?1. Solution 1 使用条件变量一种明显的途径是使用条件变量,若我们把检测条件的任务成为检测任务,把对条件做出反应的任务成为反应任务,则策略表述起来很简答:反应任务等待这条件变量,而检测任务则在事件发生时,通知条.

2021-08-31 10:16:23 259

原创 现场校时错乱分析,开启NTP校时延迟分析以及部署建议

1. 问题背景描述2021年7月23日宜春现场出现一台信号机在应该跑早高峰方案的时候,实际上跑了凌晨的方案,从而造成现场车辆拥堵的问题,客户进行了投诉并要求给出解释和解决方案。2. 问题排查和分析排查过程中发现宜春现场的校时配置十分混乱。现场存在NTP,GPS,平台校时三种模式同时进行校时的情况。并且现场并不止有一个平台,也就是通过平台校时这个方式的校时源有多种。所以可以得知的是,现场的信号机在较多情况下同时会接受3-5种不同的校时源进行校时。3. 同时有多种不同校时源下存在的风险信号机是一个时

2021-07-28 16:11:08 1079

原创 C++多线程编程介绍,技巧及注意要点---Part1

源文件文档下载地址

2021-07-16 09:32:11 329

原创 ARM应用调试打印的耗时分析

1. 问题背景在多个微服务子程序调试的时候,发现一个奇怪的问题。在Shell登陆信号机手动启动各个微服务程序的时候,一切都响应正常。但是打包成固件包,上电启动的时候,在应用配置稍微复杂一些的情况下,就会出现频繁的RPC通信超时获取不到信息的情况。由于每个微服务程序不是直接通过启动脚本启动的,而是通过一个管理微服务的程序间接启动。管理微服务程序(Manager Microservice Program, MMP)通过fork + exec的方式将启动信息传递给子进程,从而作为父进程能够拿到子进程的退出状.

2021-04-29 14:25:55 383

原创 fork error 和 create thread failed 的另一种可能需要关注的点

1. 背景问题已经伴随了一阵子,板子在free命令看着还有很多剩余空间的时候,却经常出现:fork: Cannot allocate memory并且发现有时候,还会存在这样的报错:CreateThread() failed! Resource temporarily unavailable2. 问题分析网上大多数的排查方式指向的是pid数量达到了最大值,类似于下面这个连接。pid max导致fork: Cannot allocate memory 的分析及解决办法,但是实际上整个.

2021-04-14 17:44:13 760 2

原创 Effective Modern C++ Item 38 对变化多端的线程句柄析构函数行为保持关注

Item 37 解释过,可联结的线程对应着一个底层系统执行线程,未推迟任务(参见Item 36)的期值和系统线程也有类似关系。这么一来,std::thread型别对象和期值对象都可以视作系统线程的句柄。从这个视角看,std::thread对象和期值独享的析构函数表现出如此不同的行为值得深思。重温std::thread的析构表现Item 37 中剃刀的,针对可联结的std::thread型别对象实施析构会导致程序终止,因为另外两个显而易见的选择(隐式join或者detach)都被认为是更糟糕的选择。期

2021-04-13 21:12:15 187

原创 ARM Linux 驱动入门及手把手教你简单驱动书写

ARM Linux 驱动入门及手把手教你简单驱动书写0. 本文会讲解的内容自己写驱动需要的材料简单的介绍编译驱动的Makefile文件写一个简单的驱动,并告知如何查看是否正确加载介绍驱动常用的几个回调指针写一个驱动,使用ioctl,将应用态和内核态进行交互1. 自己写驱动需要的材料对应平台的交叉工具链,本文中的工具链是(arm-at91-linux-gnueabi-gcc)对应平台的可编译的内核,即进行过menuconfig的内核源码。(与网上下的内核源码包的主要区别是menuco.

2021-03-25 17:32:55 1796

原创 Effective Modern C++ Item 37 使std::thread型别对象在所有路径皆不可联结

每个std::thread型别对象皆处于两种状态之一:可联结或不可联结。哪些属于可联结可联结的std::thread对应底层以异步方式已运行或者可运行的线程。std::thread型别对象对应的底层线程若处于阻塞或等待调度,则它可联结。std::thread型别对象对应的底层线程如已运行结束,则也认为其可联结。哪些属于不可联结不可联结的std::thread的意思如你所想:std::thread不处于以上可联结的状态。不可联结的std::thread型别对象包括:默认构造的std::threa

2021-03-20 09:09:08 198

原创 Effective Modern C++ Item 36 如果异步是必要的,则指定 std::launch::async

当调用std::async来执行一个函数(或可调用对象)时,你基本上都会想让函数以异步方式运行。但仅仅通过std::async来运行,你实际上要求的并非一定会达成异步运行的结果,你要求的仅仅是让该函数以符合std::async的启动策略来运行。标准策略有两个,他们都是用限定作用域的枚举型别std::launch中的枚举量(关于限定作用域的枚举,参见Item 10)来表示的。假设函数f要传递给std::async以执行,则:std::launch::async启动策略意味着函数f必须以异步方式运行,.

2021-03-12 19:31:30 193

原创 Effective Modern C++ Item 35 优先选用基于任务而非基于线程的程序设计

如果你想以异步方式运行函数doAsyncWork,有两种方法。你可以创建一个std::thread,并在其上运行doAsyncWork,这种方式属于基于线程的途径(thread_based)int doAsyncWork();std::thread t(doAsyncWork);你可以把doAsyncWork传递给std::async,这种策略叫做基于任务(task_based)auto fut = std::async(doAsyncWork); //fut是期望的缩写基于任务

2021-03-11 20:53:57 211

原创 嵌入式软件开发调试问题常用方法及案例分析

1. 常用调试工具介绍网络问题调试工具:tcpdump有源码情况下调试:arm-linux-gnueabihf-gdb + arm-linux-gnueabihf-gdbserver系统调用调试:strace类任务管理器工具:mpstat,pidstat2. 逐个工具介绍2.1 网络问题调试工具:tcpdump语法:tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-

2021-02-01 11:51:22 842 1

原创 用MarkDown写跨平台的PPT

1. 预备知识1.1 实现机制Pandoc,一个格式转换器,PDF,Markdown,Word,LaTex支持几十种格式互转,堪称文档格式转换届的瑞士军刀MarkDown,这是轻文档格式Html,这是网页,有浏览器就能看Reveal.js 这是一个文档展示的框架1.2 需要的材料[Pandoc]{.highlight} ver 2.11.3.2 跨平台,Linux,Windows均有[Reveal.JS]{.highlight} ver 4.1.0写MarkDownD文档的编辑器

2021-01-20 16:10:18 293

原创 ARM Linux CAN 异常排查步骤

ARM Linux CAN 异常排查方法1. 背景项目上经常有反馈,说我们的CAN总线相关设备不受控,或者控制板重启也没用。登陆系统后查看,会发现经常出现CAN通信异常或超时的情况,由于我们的控制程序在CAN总线上连续6秒接收不到信息就会异常退出。所以表象上,经常只能看到CAN总线超时退出的程序打印日志。这样显然是不利于问题偏差的,如何更容易定位问题,弄清哪里坏了,是现在需要解决的问题。本文最后会提供一个基于ARM Linux CAN的问题排查方法。2. 进一步探索后续发现我们使用的libsoc.

2020-12-25 21:25:56 4180 2

原创 Effective Modern C++ Item 34 优先选用lambda式,而非std::bind

1. 先来点历史资料std::bind是C++98中std::bind1st和std::bind2nd的后继特性,但是作为一种非标准特性而言,std::bind在2005年就已经是标准库的组成部分了。正是在那时,标准委员会接受了名称TR1的文档,里面就包含了std::bind的规格(在TR1中,bind位于不同的名字空间,所以是std::tr1::bind而非std::bind,还有一些借口细节与现在有所不同)。2. 再来谈抛弃这样的历史意味着,有些开发者已经有了十多年的std::bind开发经验。如

2020-12-24 11:09:53 345

原创 Effective Modern C++ Item 33 对auto&&型别的形参使用decltype,以std::forward之

1. 你有完美转发lambda入参的需求么?泛型lambda式(generic lambda)是C++14最振奋人心的特征之一————lambda可以在形参规格中使用auto。这个特性的实现十分直接了当:闭包类中的operator()采用模板实现。例如,给定下述lambda式:auto f = [](auto x) { return func(normalize(x));};则闭包类的函数调用运算符如下所示:class SomeComilerGeneratedClassName {public:

2020-12-23 15:33:53 215

原创 Effective Modern C++ Item 32 使用初始化捕获将对象移入闭包

有时,按值的捕获和按引用的捕获皆非你所欲。如果你想要把一个只移对象(例如,std::unique_ptr或std::future型别的对象)放入闭包,C++11未提供任何办法做到此事。如果你有一个对象,其复制操作开销昂贵,而移动操作成本低廉(例如,大部分标准库容器0),而你又需要把该对象放入闭包,那么你肯定更愿意移动该对象,而非复制它。但是,C++11中也还是没有让你实现这一点的途径。1. C++14 提供的移动捕获,与C++11的模拟移动捕获但那只是C++11,C++14则有云泥之别。它为对象移动入闭

2020-12-22 15:55:23 355

原创 Effective Modern C++ Item 31 避免默认捕获模式

C++11中有两种默认捕获模式:按引用或按值。按引用的默认捕获模式可能导致空悬引用,按值的默认捕获模式会忽悠你,好像可以对空悬引用免疫(其实并没有),还让你认为你的闭包是独立的(事实上它们可能不是独立的)。以上就是本条的重点内容。1. 默认捕获模式的危害按引用捕获会导致闭包包含指涉到局部变量的引用,或者指涉到定义lambda式的作用于内的形参的引用。一旦由lambda式锁创建的闭包越过了该局部变量或形参的生命期,那么闭包内的引用就会空悬。例如,我们有一个元素为筛选函数的容器,其中每个筛选函数都接受.

2020-12-21 22:03:35 250 2

原创 基于C++11的高精度多级时间轮定时器

定时器通常包括至少两个成员:一个超时时间(通常采用相对时间或者超时时间)和一个超时时间到达后的一个回调函数。有时候还可能包括回调函数被运行时须要传入的参数,以及是否又一次启动定时器,更改定时器的超时时间等。假设使用链表作为容器来串联全部的定时器。则每一个定时器还要包括指向下一个定时器的指针成员。进一步,假设链表是双向的,则每一个定时器还须要包括指向前一个定时器的指针成员。基于排序链表的定时器使用唯一的一条链表来管理所有的定时器,所以插入操作的效率随着定时器的数目增多而降低。而时间轮使用了哈希表处理冲突的思想

2020-12-18 16:25:05 4749 11

原创 Python Selenium 5分钟简单入门

一、预备知识:Html1. Html结构Html本质和markdown等语法类似,目的是为了用一套格式化的语法来达到呈现图形的效果。与XML,JSON等主要是为了展示数据结构或者为了持久化的目的不同,HTML本质是为了呈现数据的,这是一个用以显示为目的的语言。HTML的实现中使用了XML的思想,但对其进行了扩充和特例化。如同MarkDown中 # ##表示的一级二级标题一样, html中只是用<h1></h1> <h2></h2>等来表示标题而已,.

2020-12-03 18:14:35 887

原创 Effective Modern C++ Item 30 熟悉完美转发的失败情形

在C++11的中最引人瞩目的语言特性之一,就是完美转发。完美转发,可是完美的哟!不过,解开这完美的外表,你才会发现理想和现实有差距。C++11的完美转发相当不错,但如果一定要说达到了完美,那还是有一定差距的。本节主要介绍这些差距的地方。转发的使用背景先考虑一下完美转发的确切含义。“转发”的含义不过是一个函数把自己的形参传递(转发)给另一个函数而已。其目的是为了让第二个函数(转发目的函数)接受第一个函数(转发发起函数)所接受的同一对象。这就排除了按值传递形参,因为他们只是原始调用者锁传递之物的副本。我们想

2020-12-01 23:00:30 270

原创 Effective Modern C++ Item 29 假定移动操作不存在,成本高,未使用

传说中高效的移动操作移动语义在C++11的所有语言特性中,占据首要地位。移动容器现在和复制指针一样成本低廉了!你很有可能听说过,类似的说法还有:复制临时对象现在已经如此高效,如果可以在撰写代码中避免它,就无异于犯了过早优化的禁忌!这些情绪化的言辞不难理解。移动语义确实是个重要的语言特性。语言不只是允许编译器使用成本相对低廉的移动操作来代替昂贵的复制操作,实际上语言会要求编译器这样做(只要满足适当条件就必须这样做)。调出你的C++98版本代码,然后只需要一字不改地使用符合C++11标准的编译

2020-11-23 15:01:22 174

C++多线程编程介绍,技巧及注意要点-Part_3.pptx

C++多线程编程介绍,技巧以及注意要点,主要以C++11和C++14作为主要语言进行介绍。本节主要介绍异步编程及其技巧和常见异步框架分析。

2021-11-19

C++多线程编程介绍,技巧及注意要点--Part2.pptx

C++多线程编程介绍,技巧以及注意要点,主要以C++11和C++14作为主要语言进行介绍。本节主要介绍原子变量和内存顺序。

2021-09-18

C++多线程编程介绍,技巧及注意要点.pptx

C++多线程编程介绍,技巧以及注意要点,主要以C++11和C++14作为主要语言进行介绍。

2021-07-16

protobuf-cpp-3.12.3.tar.gz

GRPC交叉编译必须的基础库之一,目前最新的发布版本。在编译grpc的时候,会遇到此组建依赖,必须在系统中部署好此组建。

2020-07-13

grpc-1.29.1.tar.gz

GRPC交叉编译必须的基础库之一,目前最新的发布版本。配合其他上传组件的grpc源码。在编译grpc的时候,会需要此组建。

2020-07-13

gperftools-gperftools-2.7.90.zip

GRPC交叉编译必须的基础库之一,目前最新的发布版本。在编译grpc的时候,会遇到此组建依赖,必须在系统中部署好此组建。

2020-06-09

c-ares-1.16.1.tar.gz

GRPC交叉编译必须的基础库之一,目前最新的发布版本。在交叉编译GRPC时候,必须先编译好此库,并放到交叉编译工具链的sysroot/usr/中

2020-06-09

abseil-cpp grpc编译基础库

GRPC交叉编译必须的基础库之一,目前最新的发布版本。在交叉编译GRPC时候,必须先编译好此库,并放到third_party的对应的abseil中。

2020-06-09

适用于飞思卡尔IMX6UL系列CPU的专用交叉编译工具链,GCC版本5.4.0,带GDB,gdbserver版本,可以远程调试

适用于飞思卡尔IMX6UL系列CPU的专用交叉编译工具链,GCC版本5.4.0,内核3.15(兼容4系列内核),带GDB,gdbserver版本,可以远程调试

2019-08-06

At91sam9x25 交叉编译工具链 GCC4.9.2,带GDB,gdbserver版本,可以远程调试

At91sam9x25 交叉编译工具链 GCC4.9.2,内核版本2.6.39,glibc2.18,带GDB,gdbserver版本,可以远程调试

2019-08-06

FastStone Capture 6.0.exe

好用的,免安装,绿色,一键运行的截图工具。并且可以支持截图的简单编辑。绿色好用。

2019-07-30

TCP调试助手.rar

一个好用的TCP、IP协议调试助手,可以设置TCP客户端,服务器,UDP模式,可支持收发,软件稳定可靠。

2019-07-30

LabView宝典

LabView宝典书籍,无论是深入学习labview还是初步入门labview都很有意义。是一本不错的书。

2019-02-24

ANSYS APDL语言 热分析模拟程序

ANSYS APDL语言的分析代码,此案例是研究生课题中用于热封装分析的源代码。

2019-02-24

openssl-1.1.0j.tar.gz

openssl-1.1.0j.tar.gz 源码,可以通过交叉编译。注意,在选择arm板子的时候,必须./Configure linux-armv4 no-asm shared。否则无法生成动态库。

2018-12-10

At91sam9x25 交叉编译工具链 GCC4.9.2

At91sam9x25 交叉编译工具链 GCC4.9.2,内核版本2.6.39.

2018-11-09

适用于飞思卡尔IMX6UL系列CPU的专用交叉编译工具链,GCC版本5.4.0

适用于飞思卡尔IMX6UL系列CPU的专用交叉编译工具链,GCC版本5.4.0,内核3.15(兼容4系列内核)

2018-11-09

深入理解C++11新特性解析与应用

深入理解C++11新特性解析与应用,C++11介绍的粗略版本书籍,适合刚开始接触C++11的人看

2018-11-08

50个C、C++面试题

50个C、C++面试题,比较经典的面试题。适合应届生看,或者初级转行码农的人看

2018-11-08

mingw-15.0 第二部分

MinGW,是Minimalist GNUfor Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的 Windows OS 有效,使用基本运行时,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时(C Runtime)扩展,与基本运行时相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 WindowsAPI功能。

2017-08-31

mingw-15.0

minGW的自解压包,第一部分。 MinGW,是Minimalist GNUfor Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的 Windows OS 有效,使用基本运行时,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时(C Runtime)扩展,与基本运行时相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 WindowsAPI功能。

2017-08-31

高质量C和C++编程指南.pdf

上海贝尔 林锐博士写的经典的高质量C和C++编程指南

2016-10-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除