自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

铍镁钙锶钡镭

志合者,不以山海为远;道乖者,不以咫尺为近。

  • 博客(37)
  • 资源 (14)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++使用openssl对AES-256-ECB PKCS7 加解密

【代码】C++使用openssl对AES-256-ECB PKCS7 加解密。

2023-10-16 14:59:28 1256

原创 av_dump_format

int main()\n");return 0;

2023-08-07 19:20:16 186

原创 curl下载https

/*"https://xc.zhongtong.com/pic/studentPic/9ad72112fc9f4a6d8898f1ceb970eba6.jpg","https://xc.zhongtong.com/operation/file/info?path=studentPic/4278953fd865427e8f132ab71778af7f.jpg","https://xc.zhongtong.com/operation/file/info?path=studentPic/636335209.

2023-04-08 16:13:29 175 1

原创 localtime函数使用

localtime是获取当前时间的tm结构体的值,返回一个指针,如果多次调用,返回的地址是一样的。这样就会出现一个小问题,如果你先获取任意一个时间点time_t time1对应的tm tm1时间,这时使用了一次localtime。这是如果你在此使用localtime来获取tm tm2时间time2,这时localtime返回的指针所指向的内容就会改变,这时tm1和tm2其实是一样的。如何避免这种情况呢,就是调用完一次localtime获取到tm后就去使用,或者备份起来。才在去调用localtime。

2020-06-27 15:04:55 4457

原创 hid-multitouch_Modify.c

/* * HID driver for multitouch panels * * Copyright (c) 2010-2012 Stephane Chatty <[email protected]> * Copyright (c) 2010-2013 Benjamin Tissoires <[email protected]> * C...

2019-12-23 19:30:20 1542

原创 Linux 输入子系统input分析

分析input.cinput_initinput_init(void) //注册一个class err = class_register(&input_class); //在/proc项下创建input子项 err = input_proc_init(); proc_bus_input_dir = proc_mkdir("input", proc_bus); //...

2019-04-24 14:49:54 216

原创 使用本地套接字实现无血缘关系的进程间的通信

文件格式:○ 管道: p○ 套接字伪文件头文件: sys/un.h#define UNIX_PATH_MAX 108__kernel_sa_family_t sun_family;char sun_path[UNIX_PATH_MAX];struct sockaddr_un {};服务器端创建套接字socket绑定bind设置监听listen等待接收连接请求...

2019-04-22 13:44:32 273

原创 epoll三种工作模式

水平触发模式-根据读来解释只要fd对应的缓冲区有数据epoll_wait返回返回的次数与发送数据的次数没有关系epoll默认的工作模式边沿触发模式 - ETfd - 默认阻塞属性客户端给server发数据: 发一次数据server 的 epoll_wait返回一次 不在乎数据是否读完 如果读不完, 如何全部读出来? while(recv...

2019-04-22 11:08:23 1578

原创 程序员思维训练思维导图

2019-04-12 09:54:03 439

原创 Linux网络TCP服务器和客户端

只能接收一个连接请求的TCP服务器。#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <ctype.h>#include <sys/types.h>#include <sys/stat...

2019-04-10 14:11:38 302

原创 linux终端、进程组、会话、守护进程

终端在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),进程中,控制终端是保存在PCB中的信息,而fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是读用户的键...

2019-04-01 16:48:34 187

原创 Linux信号

信号的概念信号在我们的生活中随处可见, 如:古代战争中摔杯为号;现代战争中的信号弹;体育比赛中使用的信号枪......他们都有共性:1. 简单 2. 不能携带大量信息 3. 满足某个特设条件才发送。信号是信息的载体,Linux/UNIX 环境下,古老、经典的通信方式, 现在依然是主要的通信手段。Unix早期版本就提供了信号机制,但不可靠,信号可能丢失。Berkeley 和 AT&amp...

2019-03-29 14:49:32 179

原创 进程通信FIFO

FIFOFIFO常被称为命名管道,以区分管道(pipe)。管道(pipe)只能用于“有血缘关系”的进程间。但通过FIFO,不相关的进程也能交换数据。FIFO是Linux基础文件类型中的一种。但,FIFO文件在磁盘上没有数据块,仅仅用来标识内核中一条通道。各进程可以打开这个文件进行read/write,实际上是在读写内核通道,这样就实现了进程间通信。创建方式:1. 命令:mkfi...

2019-03-26 17:13:39 428

原创 进程间通信pipe

管道管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质:1. 其本质是一个伪文件(实为内核缓冲区)2. 由两个文件描述符引用,一个表示读端,一个表示写端。3. 规定数据从管道的写端流入管道,从读端流出。管道的原理: 管道实为内核使用环形队列机制,借助内核缓冲区(4k)实现。管道的局限性:① 数据自...

2019-03-26 15:24:15 324

原创 Linux exec函数族

fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。将当前进程的.text、.data替换为所要加载的程序的.text、.data,然后让进程从新的.t...

2019-03-23 13:23:04 115

原创 进程

fork,创建一个子进程。失败返回-1;成功时:父进程fork()的返回值是子进程的进程ID,子进程fork()返回0根据返回值判断fork之后是子进程还是父进程。注意返回值,不是fork函数能返回两个值,而是fork后,fork函数变为两个,父子需【各自】返回一个。用fork创建一个子进程。#include <stdio.h>#include <uni...

2019-03-21 18:15:07 262

原创 Linux系统编程IO/文件/目录操作

IO函数open close read write lseek fcntl文件操作函数:

2019-03-19 10:40:42 186

原创 Linux下gcc和动态静态库

gcc:静态库:有sub.c add.c div.c mul.c ,将他们编译成静态库gcc -c *.c生成了相应 *.o 文件,使用ar打包.ar rcs libCalc.a *.o使用nm查看库信息nm libCalc.a使用库:lib下存放libCalc.a,include 下存放头文件。gcc main.c -o main -I include ...

2019-03-18 11:04:23 134

原创 Linux内核timer使用

内核中用一套timer函数的:主要是围绕struct timer_list来做的。struct timer_list:其中重要的成员:unsigned long data:传递到超时处理函数的参数,主要在多定时器同时使用时,区别是哪个timer超时。unsigned long expires:超时时间,以jiffies来衡量。如设置超时时间为1s, timer.expires = ...

2019-02-27 13:22:44 596

原创 虚拟机和主机之间共享文件夹

先安装VMware Tools设置共享目录进入虚拟机设置界面,选择“选项”→“共享文件夹” 使用apt-get update 更新下载链接文档,再次使用命令apt-get install openvm-dkms 安装插件使用命令“mount -t vmhgfs .host:/ /mnt/hgfs”挂载共享目录 ...

2019-01-15 10:25:09 575

原创 如何写一个通用的Makefile

本文目的只是为了方便自己以后查看。通用Makefile有三个文件 a.c b.c a.h,内容://a.c#include <stdio.h>#include "a.h"int main(){ printf("hello, world!\n"); printf("A= %d\n", A); test_fun(); return 0;}//a....

2019-01-10 13:37:06 599

原创 ubuntu16.04下编译ok6410 linux-3.0.1 arm-linux-gcc 4.3.2

使用官方提供的Linux内核,编译时出错。 CC kernel/panic.o CC kernel/printk.o CC kernel/cpu.o CC kernel/exit.o CC kernel/itimer.o TIMEC kernel/timeconst.hCan't use 'defined(@ar...

2018-12-20 14:55:18 225

原创 应用调试使用gdb

编译,使用的编译器:arm-2009q3编译gdbtar -zxvf gdb-7.11.1.tar.gzcd gdb-7.11.1/./configure --target=arm-none-linux-gnueabi --prefix=/work/system/gdb_install/makemake install或者make install prefix=/work/sy...

2018-12-14 15:02:56 412

原创 应用调试strace

编译strace,使用strace-4.11.tar.xz版本,使用的编译器是arm-2009q3tar -xvf strace-4.11.tar.xzcd strace-4.11/./configure --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc LD=aarm-none-linux-gnueabi-ldma...

2018-12-12 15:15:23 178

原创 字符编码,linux使用指定的编码方式编译程序-finput-charset,-fexec-charset

相同的字符用不同的编码方式保存,数据不同。源文件用不同的编码方式编写,会导致执行结果不一样。编译程序时,要指定字符集就可以解决这个问题。在Linux下:man gcc , /charset-finput-charset=charset 表示源文件的编码方式, 默认以UTF-8来解析-fexec-charset=charset 表示可执行程序里的字时候以什么...

2018-12-05 19:27:14 3985 1

原创 mdev支持热拔插,u盘自动挂载

使用命令:fdisk -l,查看系统硬盘和分区情况  使用df查看挂载情况[root@iTOP-iMX6]# dfFilesystem           1K-blocks      Used Available Use% Mounted on/dev/root             15017904    440472  13814552   3% /tmpfs   ...

2018-12-04 19:41:15 576

原创 nfs 挂载

挂载到开发板上mount -t nfs -o nolock,vers=2 10.168.10.227:/home/rootfs /mnt启动nfs,修改etc/exports配置文件,添加挂载目录/home/psplash,/home/rootfs,/home/samba,/home/rootfs_backupcat /etc/exports# /etc/exports: the ...

2018-12-04 11:11:31 126

原创 Busybox 制作最小文件系统

设置编译器arm-linux-4.3.2,使用busybox版本busybox-1.22.1.tar.bz2.解压tar -jxf busybox-1.22.1.tar.bz2。make menuconfig 设置好编译器前缀:Busybox Settings  ---&gt;Build Options  ---&gt;Cross Compiler prefix  输入:arm-...

2018-12-04 09:40:17 450

原创 tslib1.4移植,Qt4.8.7移植arm,qt5.7.0移植arm

先安装工具:sudo apt-get install autoconfsudo apt-get install automakesudo apt-get install libtool解压tslib-1.4.tar.gz库并进入tslib:tar -zvxf tslib-1.4.tar.gz cd tslib运行autogen.sh./autogen.shlibto...

2018-11-24 08:57:19 692

原创 ARM中通过ldr pc, xxx地址,来跳转到对应的绝对地址去执行

先来了解一下ldr指令:LDR 是ARM中的指令,也是伪指令。当用 LDR r0, =num编译时,编译器会根据num是否能表示为立即数,决定用 ldr 指令或者是mov或mvn指令。当num能表示为立即数,就将它翻译成一条mov或mvn指令。不能,编译器会将num存在一个内存单元中,然后再用一条ldr指令加载这个内存单元的的值到r0中。LDR r0, label  和 LDR r0...

2018-11-02 09:23:16 6266

原创 6410 设置时钟频率,uart0

接到上一篇OK6410 点亮LED,按键点灯,按键让蜂鸣器响文章继续设置cpu时钟和串口0.添加clock.S文件如下,在start.S调用main函数前调用clock_init。设置 cpu频率为532MHZ,hclk为133MHZ,pclk为66.5MHZ//设置时钟 .globl clock_initclock_init: //设置lock_time ...

2018-10-30 14:13:30 242

原创 OK6410 点亮LED,按键点灯,按键让蜂鸣器响

通过汇编来点亮LED1查看底板原理图和芯片手册 知道,LED1-4分别对应       下面是汇编语言写的点亮led4的start.S程序及说明://启动代码:关看门狗 .globl _start_start:/* 硬件相关的设置 */ /* Peri port setup */ ldr r0, =0x70000000 orr r0, r0, #0x13 ...

2018-10-29 10:17:56 1314

原创 ok6410 烧写linux

制作用于一键烧写 Linux 的 SD 卡将 SD 卡格式化为 FAT32 格式通过 SD_Writer.exe 将 mmc.bin 烧写到 SD 卡中,管理员身份打开 SD_Writer.exe把需要的文件复制到 SD 卡中,改名为正确的文件名拨码开关设置为 SD 卡启动方式将拨码开关设为SD卡启动  8-1:11111000调试串口跟 PC 串口连接,开机按空格键会进入m...

2018-10-11 14:22:59 361

原创 由于原来烧写过的uboot分区与现在烧写的uboot分区不一样导致通过uboot烧写2440裸机程序出错

使用JZ2440uboot来烧写裸机程序烧写过程中出现了这样的提示:Now, Downloading [ADDRESS:30000000h,TOTAL:586]RECEIVED FILE SIZE:     586 (0KB/S, 1S)NAND erase: incorrect device type in bootloader'bootloader' is not a numbe...

2018-09-28 10:48:38 3881

原创 vi的一些常用操作

配置当前用户的vi环境,使配置的vi只对当前用户起作用而不影响其他用户。cd /etc/vim     //进入vi配置文件目录cp vimrc ~/.vimrc //复制配置文件到我们自己的家目录(这样配置文件只会对我们自己有效,不会影响其它用户)cd ~         //进入到家目录gedit .vimrc    //使用gedit编辑器编辑.vimrc配置文件...

2018-09-07 11:41:11 122

原创 Qt 嵌入式设备应用程序,通过U盘升级的一种思路

最近在做一个通过U盘升级的功能,程序是运行在ARM Linux Qt平台上的。这个应该是很多嵌入式设备必备的一个功能了,所以把这部分的实现抽出来,做成一个例子供需要的人参考。这只是U盘升级的一种思路,如果有更好的方法,也可以提供相应的意见。源码下载:softwareupgrade.tar.gz 升级文件的格式是通过tar压缩后的文件以gz结尾的, 可以通过tar命令生成相应的升级...

2018-08-20 12:01:53 2776 4

原创 Qt 多语言支持,不使用Qt自带的多语言工具实现多语言支持

项目都快做完了突然又要做多语言支持,所以得将所用的界面上的字都提取出来,虽然Qt已经自带了多语言工具了,但还是不想用自带的,毕竟这项目需要支持8种甚至更多种语言。在这个项目,我是通过读写文件的形式来读取多语言的,好在经过几天的努力终于全部都整完了,美滋滋。整完之后觉得这种方法不错,应该能适应于其他的需要支持多语言的Qt项目中,所以就先分享给大家。源码下载:src.tar.gz这里主要的用到...

2018-08-17 15:17:55 2461 3

02-Linux系统编程-进程

Linux进程,进程创建,进程的结束,进程的回收等相关的介绍。

2019-03-25

高手进阶,终极内存技术指南——完整/进阶版

高手进阶,终极内存技术指南——完整/进阶版,介绍了关于内存的技术。

2019-03-13

斯坦福编程范式课件.rar

网易公开课,斯坦福大学编程范式课程的讲义文档作业及解答.

2019-03-11

Linux最小根文件系统支持自动挂载U盘TF卡

Linux最小根文件系统支持自动挂载U盘TF卡。通过 mdev 工具实现 U 盘和 SD/TF 卡的自动挂载。

2019-02-26

一个项目的通用Makefile的写法

如何写一个通用的Makefile,包括顶层目录下的Makefile,子目录下Makefile,Makefile.build的写法和使用说明。

2019-01-11

ssh功能移植到开发板

移植arm平台下支持ssh登入方便开发调试。移植文档,所需的源码。

2018-12-21

arm-linux-gcc-4.4.3.tar 编译器

arm-linux-gcc-4.4.3.tar arm-linux-gcc 交叉编译器。

2018-11-29

arm-linux-gcc-4.4.3.tar.zip

arm-linux-gcc-4.4.3.tar.zip 交叉编译器。

2018-11-23

s3c6410中英文手册

s3c6410中文和英文数据手册,方便英文不好的人,对照着看。

2018-10-13

s3c2440 中英文手册

s3c2440 中文和英文数据手册,S3C2440A 32-Bit CMOS Microcontroller User's Manual

2018-10-10

嵌入式设备Qt程序的升级

从自己的实际项目中抽取出来的一个升级的简单案例,适用于ARM Linux Qt 平台。

2018-08-20

Qt 不使用自带工具实现多语言支持

在不使用Qt自带的多语言工具时,实现多语言支持,通过读写配置文件达到支持多语言的目的。

2018-08-17

GPIB自动测试系统的开发

GPIB自动测试系统的开发,GPIB通讯,CPIB编程,GPIB介绍

2015-04-10

Visual C++Turbo C串口通信编程实践书和配套源代码

龚建伟的书<<visual c++_turbo c串口通信编程实践》和配套源代码

2015-03-19

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

TA关注的人

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