linux
文章平均质量分 62
shujuliu818
Where my heart get peace, where my self get home.
展开
-
关于切换执行模式之后的寄存器设置
程序开机启动的时候,进入的是Supervisor模式,在引导程序切换到User模式的时候,需要设置SP。废了九牛二虎之力终于找到了问题所在,原来是引导程序切换到用户模式之后没有重新设置栈(SP)。今天写2440的引导程序的时候,出现了一个奇怪的现象,关机之后再开机发现串口没有打印。所以,如果模式切换之后没有设置栈(SP)的话,程序会没法执行。指针(Stack Pointer (r13) )存放的位置。原因是由上图可知每种模式之下r13都是不同的,r13既是栈。这张表是2440的通用寄存器和程序计数器表。原创 2022-09-04 23:33:03 · 147 阅读 · 0 评论 -
SMBus Host controller not enabled
关于ubuntu 18.04(各个版本差异不大)无法开机,并产生piix4_smbus **** SMBus Host controller not enabled!处理办法转载 2022-07-05 10:27:16 · 1616 阅读 · 1 评论 -
source insight设置tab键为4个空格
source insight设置tab键为4个空格转载 2022-06-06 10:53:43 · 1430 阅读 · 0 评论 -
source insight 4 设置换行符为linux换行符,删除行结尾的空格
source insight 4 设置换行符为linux换行符,删除行结尾的空格转载 2022-06-06 10:49:43 · 1736 阅读 · 0 评论 -
Linux下的ioctl()函数详解
我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …); 其中fd是用户程序打开设备时...转载 2022-01-14 13:05:22 · 5644 阅读 · 0 评论 -
在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 · 1093 阅读 · 0 评论 -
ubuntu下java调用自己做的*.jar包
最近在做一个和版权保护相关的项目,前面几篇博文也是和这个项目有关的。随着项目需求的不断完善,实现的方法也在逐步做小的修改。昨天接到了需求是把我用C语言写的库封装一层java程序,把这个程序做成*jar包的形式,以供别人的程序调用。博主在2007年接触过java,并且考取了java二级,不过经历了14年的低档,这些东西基本都忘记了。昨天又重新查找资料复习了一下java的知识。现在记录一下ubuntu下java调用自己做的*.jar包的注意事项。1.首先在当前目录建立 com/baidu/ 子目录.原创 2021-07-02 10:45:09 · 478 阅读 · 0 评论 -
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 · 446 阅读 · 0 评论 -
ubuntu下基于原有的deb包修改只做不同平台的deb包
项目中原有x86平台的一个 reg-dbus_1.0+sv4+2.4_amd64.deb 包,现在要替换包里面的两个动态库,制作mips平台的deb包这两个库都是mips平台的二进制文件。原创 2021-06-01 20:49:02 · 500 阅读 · 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 · 491 阅读 · 0 评论 -
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 · 139 阅读 · 0 评论 -
linux 调用jrtplib 实现单播,多播,广播
1.单播 单播是一种“一对一”模式,在单播通信方式下,当一端发送数据报到一个指定的主机时,首先可能会引发ARP把目的IP地址映射为MAC地址,然而ARP就是基于广播模式的实现。当以太网帧到达一个主机时,以太网接口便会把自己的MAC地址与帧中的MAC地址相比较,如果相符,以太网接口便会接收该帧,并按协议栈向上递交,如果不想符,该帧将会忽略该帧。其他的以太网接口做同样的操作,最后接收该帧的只有一个主机。在此之后,然后以太网帧向上递交到IP层目的主机会核对IP分组中的目的IP与本机IP(多宿主机),..转载 2020-12-18 15:20:34 · 215 阅读 · 0 评论 -
一个基于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 · 427 阅读 · 0 评论 -
基于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 · 272 阅读 · 0 评论 -
ALSA应用层编程播放音乐
关于ALSA,网上也有介绍,但是我在看的时候看的也是一脸懵逼,不是介绍的不好,是因为我之前对于嵌入式软件这一块实在没什么了解,之前一直学的JAVA,整个体系跟JAVA还是有很大的区别,要学的也完全是我之前没了解过的,所以以下有说错的请及时纠正。功能实现在linux中通过编程.C文件播放一个.wav格式的音频文件播放: 将音频文件进行解码(Decode)生成PCM数据, 并将其送入音频设备中播出.录音: 本程序暂时不涉及录音功能ALSA关于ALSA我不过多介绍,这篇笔记主要是记录我如何转载 2020-12-03 16:22:56 · 659 阅读 · 1 评论 -
linux /proc/loadavg(平均负载)
一、什么是系统平均负载(Load average)?在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢?系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中: - 它没有在等待I/O操作的结果 - 它没有主动进入等待状态(也就是没有调用'wait') - 没有被停止(例如:等待终止) 例如: [root@opendigest root]# uptime转载 2020-07-16 10:33:32 · 1416 阅读 · 1 评论 -
Ubuntu Cron定时程序
https://blog.csdn.net/qq_42881421/article/details/90814412转载 2019-10-22 17:15:12 · 155 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文)By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:http://blog.csdn.net/wooinCopyright:该文章版权由吴垠和他可爱的老婆小包子所有转载 2014-09-19 10:44:53 · 446 阅读 · 0 评论 -
ARM板和Linux上的3G配置详解
我们这段时间作了一个基于arm开发板和开源linux的3G模块,给大家作个参考。3G选用的是华为的EC1261,USB接口,现在市面上的基本都是USB口,据说可以直接去掉在USB modem的USB转串口等模块,直接通过GPIO口来控制3G模块,但是由于我们这资源有限,实现不了那么复杂的工作,所以就直接用了华为的产品了,而没有去找更加基础的芯片。USB网卡内部结构比较复杂,它们大部分都包括mo转载 2014-08-13 16:39:21 · 479 阅读 · 0 评论 -
Ubuntu-10.10如何给用户添加sudo权限
Ubuntu-10.10系统安装过程中,系统会提示建立一个默认用户,比如用户名为:xuwei。这个默认用户具有一定的管理功能,即可以通过sudo命令执行root权限的操作。由于Ubuntu系统不允许通过root用户登录系统,所以这个默认用户即是实际意义上的管理员。现在的问题是:如果新建一个用户:hadoop,然后要将此用户设置为与xuwei相同的管理员用户。此问题有2种方式实现:界面方式。转载 2014-09-26 11:35:10 · 423 阅读 · 0 评论 -
Ubuntu 添加sudo用户
第一种方法: 添加sudo用户 当你安装Ubuntu的时候,它会自动添加第一个用户到sudo组,允许这个用户通过键入其自身帐户密码来获得超级用户(root)身份。然而,系统不会再自动添加其他的用户到sudo组当中去。如果你想在你的共享系统上授予某人某些超级用户特权,你必须给予他们sudo权利。要添加新用户到sudo,最简单的方式就是使用 usermod 命令。运行 $sud转载 2014-09-26 11:31:11 · 409 阅读 · 0 评论 -
linux下svn命令使用大全(share)
1、将文件checkout到本地目录 svn checkout path(path是服务器 上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件 svn add file例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有转载 2014-09-26 11:24:28 · 510 阅读 · 0 评论 -
Linux中查看系统资源占用情况的命令
用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。top: 主要参数d:指定更新的间隔,以秒计算转载 2014-09-29 10:34:21 · 409 阅读 · 0 评论 -
段间跳转指令jmpi和实模式寻址
jmpi是段间跳转指令,用于x86实模式下, 如:BOOTSEG = 0x0c70 jmpi 4, #BOOTSEG 假如当前段CS==00h,那么执行此指令后将跳转到段CS==0x0c70,当然段cs的值也变为0x0c70,接下来将执行指令0x0c70:0004处的指令。 实模式下寻址是为了兼容8086处理器,8086转载 2014-09-30 11:22:00 · 902 阅读 · 0 评论 -
ubuntu图下安装软件出现You might want to run 'apt-get -f install' to correct these解决
今天在ubuntu下安装任何软件都提示以下错误:You might want to run 'apt-get -f install' to correct these:The following packages have unmet dependencies: kate : Depends: kdelibs4c2a (>= 4:3.5.9) but it is not going转载 2014-10-11 10:11:23 · 421 阅读 · 0 评论 -
为Ubuntu配置ssh服务 方便远程登陆
ubuntu系统必须开启ssh服务后,XP或者其他的主机才可以远程登陆到Ubuntu系统。1,安装软件包,执行sudo apt-get install openssh-serverUbuntu缺省安装了openssh-client,如果你的系统没有安装的话,再用apt-get install openssh-client安装上即可。2,然后确认sshserver是否启动,执行ps -e转载 2014-10-11 10:40:57 · 482 阅读 · 0 评论 -
configure: error: C++ compiler cannot create execut
TAG标签:摘要:如果有这样的错误信息: “configure: error: C++ compiler cannot create executables" 说明没装gcc或者装了gcc,没装g++,我这ubuntu10.10就是没有g++,最后是apt-get install g++,修复了congfiure不通的错误。 You need to install c++ on your co转载 2014-10-11 09:59:28 · 763 阅读 · 0 评论 -
ubuntu下搭建tftp服务器,使用命令,以及错误调试
1.搭建tftp服务器原创 2014-09-19 17:59:55 · 2603 阅读 · 0 评论 -
Ubuntu linux下安装sqlite3
1.介绍:sqlite3是linux上的小巧的数据库,一个文件就是一个数据库。2.安装: 要安装sqlite3,可以在终端提示符后运行下列命令: sudo apt-get install sqlite3 检查版本 sqlite3 -version3.测试 当前目录下建立test.db测试数据库文件 sqlite3 test.db 查询信息 .转载 2014-12-01 15:31:29 · 585 阅读 · 0 评论 -
ubuntu下使用SQLite3的基本命令
sqlite3一款主要用于嵌入式的轻量级数据库,本文旨在为熟悉sqlite3基本命令提供技术文档。希望对读者们有所帮助.系统平台:ubuntu10.04简介sqlite3一款主要用于嵌入式的轻量级数据库,本文旨在为熟悉sqlite3基本命令提供技术文档。 备注:本文所有操作均在root用户下进行。1、安装sqlite3ubuntu下安装sqlite3直接在终端运转载 2014-12-01 15:33:33 · 957 阅读 · 0 评论 -
关于time函数
声明:本文章主题来自 http://blog.sina.com.cn/s/blog_59a9e96201019o9f.html#include #include #include int main(int argc, char *argv[]){ struct tm *pt; int cur_sec, cur_min, cur_hour, cur原创 2014-12-04 13:54:00 · 490 阅读 · 0 评论 -
整数转换为字符串
itoa 并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。标准库中有sprintf,功能比这个更强,用法跟printf类似:char str[255];sprintf(str, "%x", 100); //将100转为16进制表示的字符串。下列函数也可以将相应类型的整数转换为字符串:#include #include原创 2014-12-04 18:20:06 · 539 阅读 · 0 评论 -
Ubuntu14.04安装搜狗输入法
Ubuntu14.04的特点之一就是搜狗输入法的支持,但是我们这种小白还不知道怎么安装。工具/原料Ubuntu14.04(中文版,联网)方法/步骤打开搜狗输入法Linux版的官网http://pinyin.sogou.com/linux/?r=pinyin,并下载你需要的版本,这里选择64位版。转载 2015-07-25 10:30:18 · 337 阅读 · 0 评论 -
关于move_uploaded_file()出错的问题
move_upload0ed_file()函数返回参数较少,但是引起出错的原因却有很多,所以对于初学者难免会遇到问题。出错原因大概有以下三点:1.如果检测到文件不是来自post上传,这个文件不会执行cp工作;2.目的路径找不到;3.目的路径权限非执行进程课读写(这条是本人下午发现的);首先看看这几行代码,了解一下环境:if(move_uploaded_file($f原创 2015-07-26 20:12:19 · 3979 阅读 · 0 评论 -
ubuntu 在本地设置域名
自己学习,记录下来,仅供参考,高手就跳过吧第一步:sudo vim /etc/hosts127.0.0.1 localhost127.0.1.1 allen#本地调试用的127.0.0.1 www.example.com(你想要的域名)# The following lines are desirable for IPv6 capablehost转载 2015-07-29 15:42:15 · 10477 阅读 · 1 评论 -
怎么完全卸载nginx
配置lnmp环境的时候,有时候nginx启动会出错,原因也不好查找,不如完全卸载,然后重装一下:下面列出了完全卸载需要的步骤:sudo apt-get --purge remove nginxsudo apt-get autoremovedpkg --get-selections|grep nginx罗列出与nginx相关的软件, nginx-common de原创 2015-08-01 12:45:37 · 1513 阅读 · 0 评论 -
vim编辑器---批量注释与反注释
vim编辑器---批量注释与反注释在使用vim编写代码的时候,经常需要用到批量注释与反注释一段代码。下面简要介绍其操作。方法一 块选择模式插入注释:用v进入virtual模式用上下键选中需要注释的行数按Control+v(win下面ctrl+q)进入列模式按大些“I”进入插入模式,输入注释符“#”或者是"//",然后立转载 2015-07-21 15:00:49 · 327 阅读 · 0 评论 -
svn merge 时候出现的问题以及解决方法
# svn merge --helpmerge: Apply the differences between two sources to a working copy path. 用法:1. svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]2. svn merge sourc转载 2015-08-28 11:32:03 · 14438 阅读 · 0 评论 -
Linux如何查找文件安装路径
Linux中查看某 个软件的安装路径(地址)有时显得非常重要。比如某个文件的快速启动项被删除,或者你要建立快速启动项,或者想删除、 添加安装文件等等,很多地方都要用到查案文件安装路径的命令。这里给大家介绍Linux查看文件安装路径(地址)命令。一、查看文件安装路径: 由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址)。这里以Oracle为例。转载 2015-09-28 17:04:31 · 593 阅读 · 0 评论 -
使用GDB调试程序
1. 使用gdb调试程序1.1 编译源代码1.2 如何进入,退出gdb1.3 浏览源代码1.3.1 list命令1.3.2 如何在gdb查找字符串1.4 break point断点1.4.1 设置断点1.4.2 删除断点1.4.3 查看断点信息1.5 watch point监视点1.5.1 设置监视点1.5.2 查看监视变量的内容1.6 catc转载 2015-12-18 09:51:35 · 369 阅读 · 0 评论