自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(240)
  • 收藏
  • 关注

转载 通过SSH拉取git仓库代码

最后在试试拉取一下代码是不是就成功了。如图结果表示添加操作成功。

2023-09-06 13:21:26 293

转载 C语言头文件里可不可以定义变量

实际上在编译过程中,会为其每个obj模块中编译产生不同的名字,所以在link时候不会报错。2.在头文件定义非const类型时,link时报错,这是因为这样相当于在每个包含该头文件的cc文件的全局域定义了一个名字相同的全局变量,虽然在complie时由于分开编译,不会产生错误,但是在link时,将会发生变量名冲突。3.在头文件中使用extern 声明一个全局变量时可以的,而且是全局变量使用的推荐做法,前提是声明的这个全局变量,已经在一个cc文件,且只在一个cc文件中定义。

2023-08-02 17:24:59 554

转载 Ubuntu网络突然丢了

解决Ubuntu 20.04网络无法连接,没有网络图标_ubuntu20有线网络连不上_码咔吧咔的博客-CSDN博客本文转自:解决Ubuntu 20.04网络无法连接,没有网络图标_ubuntu20有线网络连不上_码咔吧咔的博客-CSDN博客

2023-07-29 20:05:27 126

原创 Terminator常用快捷键

Ctrl+Shift+方向 移动当前窗口的分割条(即改变窗口大小)Ctrl+Shift+x 当前窗口铺满终端/恢复原来的大小。Alt+方向 窗口切换。Ctrl+Shift+N/P 下一个/前一个窗口切换。Ctrl+Shift+o 水平分割终端。Ctrl+Shift+e 垂直分割终端。Ctrl+Shift+w 关闭当前窗口。Ctrl+Shift+q 关闭终端。

2023-07-14 17:40:55 323

原创 LCD液晶屏显示问题分析

问题 b 的原因是过早设置了 LCDCON1 的 ENVID 位,如果过早打开此位,而图片没有随后立刻到来,那么就会有杂乱的条纹输出,而后图片到来之后,图片就没有从 Y 轴的零点开始输出,而是从白底时杂纹开始的地方一帧帧的刷新图片。问题 a 的原因是不要过早的设置 LCDCON5 的 PWREN 位,当此位被设置并且 GPBDAT 被写入 1 之后,背光就开始亮了,这亮的太早了。从视频中可以看到,图片刷新的时候有两个问题,LCD亮的瞬间有花屏,并且LCD每帧图片显示的时候不是从 Y 轴的零点开始刷新。

2022-09-24 23:12:58 1300 1

原创 LCD 控制器 LCDCON5(极性的初始化)

上一篇文章中提到过,实际的HSYNC,VSYNC信号的有效电平是通过LCD的dataSheet来确定的,通过前文已经分析得出, HSYNC VSYNC两个信号都是低脉冲有效,所以要配置电平的反转。LCDCON5(极性的初始化)

2022-09-23 18:55:44 673

转载 多级目录的Makefile

经常用到的三个函数 $(wildcard pattern) $(patsubst pattern, replacement, text) $(shell cmd)

2022-09-20 01:05:24 158

原创 编写操作norflash的裸机程序

3.写flash时由于CPU的A1接到了flash的A0上,所以每次地址都要增加两个字节,所以只能一次性写两个字节。如果每次写一个字节,那么类似 1, 3, 5,7...这样的奇数自己永远写不上,2,4,6...这样的偶数字节则能写上;4.写flash的时候每个指令周期只能写一次,如果需要继续写就要继续发出写指令。如果只发一次指令,则只能写上两个字节,后续的都写不上;2.如果要操作norflash,则需要在操作之前完成程序重定位,否则程序会卡死,因为在CFI模式下norflash不能读;

2022-09-10 02:06:39 320

原创 关于切换执行模式之后的寄存器设置

程序开机启动的时候,进入的是Supervisor模式,在引导程序切换到User模式的时候,需要设置SP。废了九牛二虎之力终于找到了问题所在,原来是引导程序切换到用户模式之后没有重新设置栈(SP)。今天写2440的引导程序的时候,出现了一个奇怪的现象,关机之后再开机发现串口没有打印。所以,如果模式切换之后没有设置栈(SP)的话,程序会没法执行。指针(Stack Pointer (r13) )存放的位置。原因是由上图可知每种模式之下r13都是不同的,r13既是栈。这张表是2440的通用寄存器和程序计数器表。

2022-09-04 23:33:03 127

原创 关于S3C2440进出 EXCEPTIONS 的理解

一. EXCEPTIONS(异常)包含的范围特别广泛,除了 System&User 模式,其他的都叫异常。上图为 S3C2440 的官方异常向量表。

2022-08-31 19:15:59 173

转载 SRCPND和中断未决寄存器INTPND以及外部中断未决寄存器EINTPEND分析

S3C2440的中断寄存器有6个中断裁决器,分为2级:第一级为5个,第二级为1个。一、三个中断未决寄存器:中断源未决寄存器(SRCPND)和中断未决寄存器(INTPND)以及外部中断未决寄存器(EINTPEND) SRCPND 寄存器有效位为32位,每一位对应一个中断源,某个位被置一表示相应的中断被触发,但我们知道系统 在同一时间内可以触发多个中断,只要中断触发了,相应的位就被置一,直到该位被清除为止,也就是说在同一时刻 SRCPND寄存器可以有多个位被同时置1,该位写1后被清0。...

2022-08-31 11:34:45 773

转载 存储器的介绍(ROM、RAM、NOR Flash、NADN Flash之间的区别)

它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。:NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。:NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。PROM:是可编程的ROM,PROM是一次性的,在软件写入后,就无法修改了,这种是早期的产品,现在已经很少使用了。

2022-08-24 15:34:04 1732

原创 ROM, SRAM, SDRAM的区别

不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,所以在主板上SRAM存储器要占用一部分面积,在主板上哪些是SRAM呢?二是插在卡槽上的COAST(Cache On A Stick)扩充用的高速缓存,另外在CMOS芯片1468l8的电路里,它的内部也有较小容量的128字节SRAM,存储我们所设置的配置数据。

2022-08-24 15:00:52 1160

转载 Source Insight乱码解决方案

或者使用记事本打开非ANSI格式的源代码文件,另存为,在保存选项对话框中,在编码格式一栏中发现是UTF-8,选择ANSI一项,保存,再用Source Insight打开就可以正常显示中文注释了。1、用记事本打开源文件,中文可以显示,我另存为,在保存选项中,编码一栏发现是:UTF-8。3、将UTF-8的源文件,用Notepad++将UTF-8的源文件转换为本地ANSI,即GB2312编码,此时,再用SI打开,就可以正常显示中文了。关于编码转换,除了用Notepad++等工具,可以使用iconv工具去转换。..

2022-08-17 15:23:12 3081

转载 iptables详解

文章主要对iptables四表五链,以及iptables应用场景做了详细描述

2022-07-07 00:21:45 23993 1

转载 SMBus Host controller not enabled

关于ubuntu 18.04(各个版本差异不大)无法开机,并产生piix4_smbus **** SMBus Host controller not enabled!处理办法

2022-07-05 10:27:16 1439

转载 source insight设置tab键为4个空格

source insight设置tab键为4个空格

2022-06-06 10:53:43 1377

转载 source insight 4 设置换行符为linux换行符,删除行结尾的空格

source insight 4 设置换行符为linux换行符,删除行结尾的空格

2022-06-06 10:49:43 1554

转载 Linux下的ioctl()函数详解

我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …); 其中fd是用户程序打开设备时...

2022-01-14 13:05:22 5385

转载 如何修改git分支名称

1. 修改本地git分支名称指令git branch -m oldBranchName newBranchName2. 修改远程仓库(github)上的分支名称git本地分支名已修改, 只需推送到远程仓库上,即可更换掉远程仓库的分支名称。

2021-11-23 20:39:53 5927

转载 git push 成功后如何撤销回退

一、git reset1、首先用 git log 命令查看历史记录2、假设要回退到上一版本,版本号应是Fri Jul 12 11:07:01 2019时间的19462f6f46cf4cbc211d366359afac0c17a7c190git reset --soft 19462f6f46cf4cbc211d366359afac0c17a7c190// 注意 --hard 参数会抛弃当前工作区的修改// 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提.

2021-10-29 19:51:43 14983

转载 git删除本地分支和删除远程分支

引言:  注:本人一直都是用的git bash窗口完成日常的开发工作。  事情是这样的,切换分支的时候命令打错了,git checkout 后面没有跟分支名,结果git status,很多delete的文件,直接冒冷汗,git add ,commit 之后发现本地与远程确实是删除了很多文件,我本地没有修改的代码,于是选择直接删除本地的分支,然后重新从远程拉分支。具体操作:  我现在在dev20181018分支上,想删除dev20181018分支  1 先切换到别的分支: git chec

2021-10-29 19:33:42 4154

转载 git查看历史提交修改了哪些文件

git log --statgit log --stat - <number>限制显示历史提交的数量

2021-10-29 19:32:03 645

转载 git 拉取master之外的其他分支

1、当本地有其他分支的代码仓库时通过下述命令查看所有的远程分支:git branch -r下面有2种方法来拉取远程分支代码:(1).需要本地分支和远程分支建立映射关系执行如下命令:git checkout -b 本地分支xxx origin/远程分支xxx使用这种方式会在本地仓库新建本地分支xxx,并自动切换到新建的本地分支xxx,当然了远程分支xxx的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支会和远程分支建立映射关系。(2).不需要本地分支和远程分支建立映.

2021-10-27 10:43:24 2548

原创 在Java中调用C/C++本地库

本文参考:https://www.cnblogs.com/jaejaking/p/6840530.htmlJNI是Java Native Interface的英文缩写, 中文翻译为本地调用, 自从Java 1.1开始就成为了Java标准的一部分.C/C++是系统级的编程语言, 可以用来开发任何和系统相关的程序和类库, 但是Java本身编写底层的应用比较难实现, 使用JNI可以调用现有的本地库, 极大地灵活了Java的开发.C/C++的效率是目前最好的语言, 可以使用C/C++来实现一些实时性非常

2021-07-02 15:34:27 1018

原创 ubuntu下java调用自己做的*.jar包

最近在做一个和版权保护相关的项目,前面几篇博文也是和这个项目有关的。随着项目需求的不断完善,实现的方法也在逐步做小的修改。昨天接到了需求是把我用C语言写的库封装一层java程序,把这个程序做成*jar包的形式,以供别人的程序调用。博主在2007年接触过java,并且考取了java二级,不过经历了14年的低档,这些东西基本都忘记了。昨天又重新查找资料复习了一下java的知识。现在记录一下ubuntu下java调用自己做的*.jar包的注意事项。1.首先在当前目录建立 com/baidu/ 子目录.

2021-07-02 10:45:09 435

转载 linux/ubuntu中制作deb安装包

1 创建一个简单的源码包ls -ltotal 24-rw-rw-r– 1 mountzf mountzf 73 Jul 8 14:05 helloworld.c-rw-rw-r– 1 mountzf mountzf 323 Jul 8 14:32 Makefile

2021-06-16 10:16:18 1455

转载 linux使用alien实现xxx.deb与xxx.rpm包相互转换

deb 与 rpm 是GNU/Linux 流行的软件包格式。我们“alien”可以在rpm\dpkg\slackware tgz\deb\slp 格式见进行转换。Debian/Ubuntu 可使用下面命令安装alien:sudo apt-get install alien从RPM转到DEB举例:假设在目录/tmp 有myprogram.rpm 文件,使用下面命令转换:sudo alien /tmp/myprogram-1.10-2.i386.rpmmyprogram-1.10-3.i

2021-06-01 21:06:12 384

原创 ubuntu下基于原有的deb包修改只做不同平台的deb包

项目中原有x86平台的一个 reg-dbus_1.0+sv4+2.4_amd64.deb 包,现在要替换包里面的两个动态库,制作mips平台的deb包这两个库都是mips平台的二进制文件。

2021-06-01 20:49:02 403 1

转载 Ubuntu终端多窗口分屏Terminator

1、安装Terminator最大的特点就是可以在一个窗口中打开多个终端sudo apt-get install terminator2、快捷键Ctrl+Shift+E 垂直分割窗口Ctrl+Shift+O 水平分割窗口 F11 全屏Ctrl+Shift+C 复制Ctrl+Shift+V 粘贴Ctrl+Shift+N 或者 Ctrl+Tab 在分割的各窗口之间切换Ctrl+Shift+X 将分割的某一个窗口放大至全屏使用

2021-05-26 14:17:18 461

原创 linux 下对 mysql 的操作(书到用时方恨少)

今天在项目中要把加密之后的密文存入数据库,所以临时简洁的研究了一下linux下对mysql的操作。1.登录数据库用到的命令:$ mysql -u root -p输入之后会提示对应用户root的密码,如图:当输入密码时总是提示如下:ERROR1698(28000):Access denied for user root@localhost解决方法如下链接:https://www.cnblogs.com/cpl9412290130/p/9583868.html这位大佬已经解决

2021-05-20 20:59:03 128

转载 在 Ubuntu 下直接将二进制文件制作成 rpm 包

大多数 rpm 包的制作都是用源码包来编译构建,而我的需求是直接将可运行的二进制文件制作成 rpm 包,而且是在 Ubuntu 系统上。网上的大部分资料都是源码来制作 rpm 包,且比较零乱、不完整。rpm 制作的重要一步就是编写 spec 文件,在该文件中定义了如何编译源码,然后又如何打包的过程。通过大量的资料查阅和分析,最后发现在 spec 文件中把 源码编译的部分删掉便可以直接将二进制文件制作成 rpm 包。 安装 rpm 工具制作 rpm 包需要用到 rpmbuild 工具。在 ubuntu

2021-05-06 14:51:54 546

转载 linux下制作rpm包举列

1.说明:rpm软件包主要用在Linux 的reddat系列的发行版中,因此rpm软件包只适用于redhat系.2.编写测试代码:1.创建一个目录mkdir test2.进入到上一步创建的目录下编辑文件编辑 test.c内容如下:#include <stdio.h>int main(){ printf("hello world!\n"); return 0;}编辑MakefileOBJ = test.oBIN_FILE = t

2021-05-06 14:47:09 251

转载 TCP协议是如何保证可靠传输

1、UDP:(1)UDP,user datagram protocol,用户数据报协议,不提供复杂的控制机制,利用IP提供面向无连接的通信服务,并且它是将应用程序发送过来的数据包在收到的那一刻,立即按照原样发送到上的一种机制。(2)即使在网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,在传输过程中如果出现丢包,UDP也不负责重发,甚至当数据包的到达顺序乱掉之后也没有纠正顺序的功能。因此,如果需要这些细节控制的话,就需要在采用UDP协议的应用层去作出处理。(3)由于UDP面向无

2021-03-23 15:58:58 807

转载 gdb基本命令(非常详细)

gdb基本命令本文介绍使用gdb调试程序的常用命令。主要内容:[简介][举例][其他][简介]=============GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端。一般来说,GDB主要完成下面四个方面的功能:(1)启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。(2)可让被调试的程序...

2021-03-23 13:19:58 4813

转载 TCP的三次握手与四次挥手理解及面试题(很全面)

本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。...

2021-03-23 13:17:42 141

转载 Git 如何删除本地分支和远程分支

切换到master分支git checkout master查看已有的本地及远程分支git branch -a删除远程分支git push origin --delete dev删除后,再次查看分支情况git branch -a删除本地分支git branch -d dev远程分支和本地分支删除完毕当我想从远程仓库里拉取一条本地不存在的分支时:git checkout -b 本地分支名 origin/远程分支名这个将会自动创建一个新的本地分支,并与指定

2020-12-29 10:36:23 301 3

转载 linux 调用jrtplib 实现单播,多播,广播

1.单播 单播是一种“一对一”模式,在单播通信方式下,当一端发送数据报到一个指定的主机时,首先可能会引发ARP把目的IP地址映射为MAC地址,然而ARP就是基于广播模式的实现。当以太网帧到达一个主机时,以太网接口便会把自己的MAC地址与帧中的MAC地址相比较,如果相符,以太网接口便会接收该帧,并按协议栈向上递交,如果不想符,该帧将会忽略该帧。其他的以太网接口做同样的操作,最后接收该帧的只有一个主机。在此之后,然后以太网帧向上递交到IP层目的主机会核对IP分组中的目的IP与本机IP(多宿主机),..

2020-12-18 15:20:34 199

转载 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(十)使用JRTPLIB传输RTP数据

myRtspClient通过简单修改JRTPLIB的官方例程作为其RTP传输层实现。因为JRTPLIB使用的是CMAKE编译工具,这就是为什么编译myRtspClient时需要预装CMAKE。该部分所有代码均集中在myRtpSession.cpp中,接下来将对其进行分析。一、获取RTP数据此处GetMyRTPData获取数据的方式主要是轮询,即每隔USLEEP_UNIT个微秒轮询一次直到获取到一包数据或超时,超时时间为timeout_ms,单位是微秒。GetMyRTPPacket的逻辑与之相

2020-12-17 16:53:38 358

转载 基于jrtplib实现的最简单服务端和客户端

使用Jrtplib库实现服务端和客户端通讯转自:https://blog.csdn.net/wastedsoul/article/details/80581864服务端代码:/* Here's a small IPv4 example for receiver*//*#include "rtpsession.h"#include "rtpudpv4transmitter.h"#include "rtpipv4address.h"#include "rtpsessionpar

2020-12-17 16:34:37 229

空空如也

空空如也

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

TA关注的人

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