- 博客(96)
- 资源 (4)
- 收藏
- 关注
原创 被安排了一个任务,执行过程中要注意什么?
一朝领命去,几年百折不挠,和组织失去联系也要把事儿办成的故事虽然很励志,但并不是真相。涉及与他人、其他部门、外部合作者协作的节点往往是最容易出问题的。7 对人好一点,无论事情有多重要有多着急,都要做个有人情味儿的人。2 不要怕被人讥笑“刷存在感”,做事的人就是要为自己做的事争取存在感。经常与部署任务给你的上级谈论你在做的事情、你遇到的问题。3 任何一个任务都可以拆分为若干个子任务,选择从哪个子任务开始做时,考虑你最有天赋、资源最多和最想花时间的。
2024-05-06 20:53:56
235
原创 如何养成良好的工作习惯
7 最可怕的不是接到不合理的工作任务,而是各个环节的同事都还说不清楚任务是什么,它就已经到你收上了。你可以做那个明白人:到业务场景里看看同事们到底要解决什么问题,问题是典型的还是非典型的是长期的还是暂时的,然后试着提出你的解决方案。6 “训练”你的上级,让他养成给你好好布置工作的习惯,确保你在干活之前充分理解这项工作要解决什么问题,以及交付标准是什么样的。4 把工作重心放在解决问题的方法上,研究自己的工作方法,关注自己工作方法的迭代,以及工作方法能不能为自己和他人提效。1 找到工作的意义。
2024-05-01 17:19:39
117
原创 AES加密算法
AES (Advanced Encryption Standard) 是一种对称加密算法,是目前广泛使用的加密算法之一。它能够在保护数据安全的同时,提供高效的加密和解密功能。AES 使用相同的密钥进行加密和解密,因此被称为对称加密算法。它采用了替代性加密,即将明文数据分成固定长度的数据块,然后对每个数据块执行一系列的加密操作。AES 使用不同长度的密钥,分别为 128 位、192 位和 256 位。AES 算法通过多轮的加密和解密操作来提高安全性,其中轮数取决于密钥长度。
2024-04-03 16:49:04
1067
原创 Epoll 与 Select
因为他们在read调用时,内核将数据从内核空间拷贝至应用程序空间(epoll应该是从mmap),过程都是需要等待的,也就是说这个过程是同步的,如果内核实现的拷贝效率不高,read调用就会在这个同步过程中等待比较长的时间。此可见,水平触发时如果系统中有大量你不需要读写的就绪文件描述符,而它们每次都会返回,这样会大大降低处理程序检索自己关心的就绪文件描述符的效率,而边缘触发,则不会充斥大量你不关心的就绪文件描述符,从而性能差异,高下立见。select/poll/epoll 本身是同步的,可以阻塞与可以不阻塞。
2023-10-05 17:34:49
178
转载 Linux Strace命令
当发现进程或服务异常时,我们可以通过 strace 来跟踪其系统调用,“看看它在干啥”,进而找到异常的原因。熟悉常用系统调用,能够更好地理解和使用strace。当然,万能的 strace 也不是真正的万能。当目标进程卡死在用户态时,strace 就没有输出了。这个时候我们需要其他的跟踪手段,比如 gdb / perf / SystemTap 等。备注:1、perf 原因 kernel 支持2、ftrace kernel 支持可编程3、systemtap 功能强大,RedHat。
2023-10-05 15:00:37
599
原创 emWin - BMP图片显示
e. 在弹出来的窗口中,选择保存的格式。如果bmp图片呢是任务加风景的复杂图片的话,压缩的效率其实并不高。如果一行里面有很多像素是一样的话,而这样的行有很多的话,那么压缩的比例就会很高。使用BmpCvt.exe工具,将各个图片转成相应的C文件. emWin有关的工具,都在Simplicity Studio工具目录下的reptile\emwin\exe文件夹下面。f. 压缩的目的是用时间换空间,因此压缩过的bmp在刷屏的时候,由于处理方式不一样,因此显示的效率比较低,看起来刷的比较慢。
2023-08-01 21:44:50
1090
原创 嵌入式之状态机编程
有5个要素,分别是状态(state)、迁移(transition)、事件(event)、动作(action)、条件(guard)。
2023-04-06 19:38:59
542
原创 Linux time.h头文件详解
与时间相关的头文件:time.h sys/time.h sys/times.h sys/timeb.h sys/timex.h
2022-06-26 16:08:36
5408
1
原创 Linux ar命令(更改静态库相关属性信息)
库:为减少编程时程序代码的开发量,一般会按照软件重用思想将经常使用的功能模块封装成库,而对库文件进行操作一般会使用Linux中的ar命令。
2022-06-19 15:06:15
1660
原创 Linux 不常用命令
stat filename:获取文件的属性expr:四则运算与字符串运算od:命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符
2022-06-07 22:16:38
308
原创 Shell脚本
一个脚本文件调用另一个脚本文件的三种方式l:① fork;② exec;③ source;/home/sh1.sh;/home/test/shell1.sh; /home/test/shell2.sh;用法举例:① fork:sh1.sh 脚本调用shell1.sh 脚本:在sh1.sh脚本文件中增加一行:/home/test/shell1.sh(shell1.sh脚本有可执行权限);sh /home/test/shell1.sh(shell1.sh脚本没有可执行权限)shell1.sh脚本调用shell2
2022-06-02 21:39:58
2111
原创 计算机常用编码
ASCII码:共 128个字符;只占用了一个byte的7个bit位,高位的1位统一规定为0;unicode:该编码将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,即:一种所有符号的编码;缺点:unicode只是一个符号集,只是一个规范、标准,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储在计算机上。unicode编码存储汉字时需要2字节或者更多字节,ASCII只需要1字节,那么怎么进行区分是ASCII还是unicode呢?这也是该编码一直无法推广的原因。直到互联网
2022-05-01 20:53:51
3505
原创 标准ASCII
ASCII 是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本延伸美国标准信息交换码则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。ASCII 是编码系统的传统名称;互联网号码分配机构(IANA)更倾向于更新后的名称US-ASCII,这说明了该系统是在美国开发的,并基于主要在美国使用的印刷符号。ASCII是美国电气和电子工程师协会里程碑之一。ASCII是由电报代码发展而来的。它的第一个商业用途是作为贝尔数据服务公司推广的七位电传打字机代码。ASCII标..
2022-05-01 17:07:57
4556
原创 嵌入式中常用数据类型
typedef signed char int8_t;typedef signed short int16_t;typedef signed long int32_t;typedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned long uint32_t;typedef int8_t s8;typedef int16_t s16;typedef int32_t s32;ty...
2022-04-29 21:33:11
631
原创 memset与memcpy函数总结
memset函数详细说明;void *memset(void*str, int c, size_t n);该函数功能:将str 指向的某一块内存中的每个字节的内容全部设置为c 指定的ASCII值,块的大小由第三个参数n 指定,该函数通常为新申请的内存做初始化工作。该函数作用:为已开辟内存空间str 的前n 个字节的值设为值c (给申请的空间初始化)。该函数包含在string.h头文件(C language),cstring或string.h(C++ language).memset函数实例.
2021-10-04 17:08:35
620
原创 回调函数讲解
回调函数:或简称回调(Callback 即 call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其他代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。(回调函数是一个通过函数指针调用的函数,把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,这即为回调函数。)把一段可执行的代码像参数一样传递给其他代码,而这段代码会在某个时刻被调用执行,这称为回调。如果代码立即被执行就称为同步回调;如果在之后晚点的某个时间再执行
2021-09-21 19:45:47
3517
原创 C++ 类
C++在C语言的基础上增加了面向对象编程,C++支持面向对象程序设计。类定义是以关键字class开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。公有成员可以使用直接成员访问运算符(.)来直接访问,而受保护的成员与私有的成员不能用直接成员访问运算符访问。基类与派生类:一个类可以派生自多个类,它可以从多个基类继承数据和函数。派生类可以访问基类中所有的非私有成员。因此基类成员如果不想被派生类的成员函数访问,则应在基类中声明为private。访问
2021-08-15 19:56:40
341
原创 名空间(namespace)
在C++编程中,变量和函数等的作用范围是有限制的,在函数内定义的变量就不可以在函数外使用。引入名空间(namespace)可解决变量和函数的作用范围。在一个名空间中可以定义一组变量和函数,这些变量和函数的作用范围是一样的,可以将这些变量和函数称为这个名空间的成员。通过名空间,可以在一个文件中使用相同的变量名或函数名,前提条件是它们属于不同的名空间。名空间可以使得代码操作具有相同名字但属于不同库的变量,而且,名空间也可以提高C语言与C++语言的兼容性。using :using的使用提高了程序的
2021-07-18 18:03:51
387
原创 C、C++结构体与类
在C++语言中,除了类中可以使用构造函数、析构函数以外,结构体中同样可以使用。这两者的区别是:类中成员变量默认为私有成员,结构体的成员变量默认为公有。C++结构体中可以有构造函数与析构函数的,但是C语言中的结构体是不允许有的。C语言是面向过程的,则C语言的结构体不存在面向对象的任何特点:不能继承、封装、多态;不存在访问控制,只存在作用域。C语言的结构体只能定义数据,而不能定义方法,但可以定义函数指针。C语言中的结构体不能为空,否则会报错。结构体关键字struct不能省略。Struct与Cla
2021-07-04 15:47:10
379
原创 编写程序重复定义Bug(multiple definition of)解析
如果两个函数、方法重复定义就会报“multiple definition of”错误;如果非要定义两个函数同名,则可以在函数前加static,便可以将两个同名函数编译过。1、给每一个头文件加条件编译在编写“.h”头文件时加上条件编译:当多个文件包含同一个头文件时,而头文件没有加上条件编译,编译执行时就会独立的解释,于是就有了重复定义的错误;而如果加上条件编译可避免该文件被多次引用时被多次解释。#ifndef TEST_H_#define TEST_H_……#endif2、使用..
2021-04-14 19:05:09
4021
转载 SPI I2C UART(即串口)
SPI(串行外设接口):是Motorola公司提出的一种同步串行数据传输标准。I2C(IC之间总线):是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。UART(通用异步收发器):是电脑硬件的一部分,他把将要传输的资料在串行通信与并行通信之间加以转换,UART通常被集成与其他通信接口的连接上。UART即我们通常说的“串口”。...
2021-03-28 11:23:23
1547
原创 Linux系统开机启动流程
Linux系统开机启动的流程:① 开机自动检查,加载BIOS;② 读取MBR;③ Boot Loader Grub引导系统;④ 加载Kernel 内核;⑤ init进程根据inittab文件夹来设定运行级别;⑥ init进程执行rc.sysinit;⑦ 启动内核模块;⑧ 执行不同运行级别的脚本程序;⑨ 执行 /etc/rc.d/rc.local;⑩ 执行 /bin/login程序,启动mingetty,进入登录状态。Linux系统开机启动流程图:① :开.
2021-03-26 16:44:25
1134
翻译 蜂窝移动通信技术
随着移动通信技术的发展,无线蜂窝网的覆盖面越来越广,移动通信发起的紧急呼叫数量在全部紧急呼叫中所占的比例也随之上升。现有的蜂窝网络能为移动通信紧急呼叫提供的辅助信息非常的少,根据调查表明,约有25%的移动用户在发起紧急呼叫时不知道所处的确切位置,这对及时合理的出警带来了很多的限制。因此,移动通信网能为发起紧急呼叫的移动用户提供准确的定位信息。蜂窝移动通信已成为市级范围内的一项非凡成功的作品,其发展速度非常迅速,以致业务需求远远超过了原先的预测。大多数情况下,经营者只限定在一个固定频段上,几乎无望增加频谱
2021-03-13 17:51:28
3020
原创 在C语言中,“>>=”;“<<=”;“&=”;“|=”分别代表什么
① C语言中,>>=的意思是:右移后赋值;示例:x=8;//1000x >>=3;结果为:0001② C语言中,<<=的意思是:左移后赋值;示例:x=1;//0001x<<=3;结果为:1000③ C语言中,&=的意思是:按位与后赋值;示例:x=0x03;//0011x&=0x01;//0001结果为:0001④ C语言中,|=的意思是:按位异或后赋值;示例:x=0x02;//0010x|
2021-03-04 21:19:34
18296
1
原创 GPIO的两种引脚规则:BCM与BOARD
树莓派(raspberry)针脚在python中BCM与BOARD模式的区别:在python程序中定义的GPI针脚有两种模式:① BCM模式;② BOARD模式。① BCM模式:例如:GPIO.setmode(GPIO.BCM)测试结果如下:物理针脚11脚对应GPIO17脚;物理针脚12脚对应GPIO18脚。测试命令如下:#sudo ipython import RPi.GPIO as GPIOGPIO.setmode(GPIO.BCM)GPIO.setup(17,GPIO.OUT)GP
2021-03-03 16:10:18
9878
1
原创 数据库(SQL)中where与having的区别:
数据库中:where子句与having子句的区别:where:① where是一个约束声明,使用where来约束来自数据库的数据;② where是在结果返回之前起作用的;③ where不能使用聚合函数(聚合函数包括:sum、count、max、avg等对一组或多条数据操作的函数);④ where的执行顺序早于having;having:① having是一个过滤声明;② 在查询结果以后,对查询结果进行的过滤操作;③ having可以使用聚合函数(聚合函数包括:sum、c.
2021-02-08 16:40:42
3801
1
安装交叉编译器-驱动-移植测试代码实验步骤.zip
2020-04-28
Arduino硬件编程语言基础.xmind
2020-04-28
智能硬件Arduino编程功能入门.docx
2020-04-28
Qt 教程.zip
2019-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人