- 博客(70)
- 资源 (8)
- 收藏
- 关注
原创 Linux下程序编译通过运行时提示error while loading shared libraries(动态链接库问题)
问题:Linux下程序编译通过了,但是运行时提示 :error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such fileor directory原因是没有找到动态链接库文件。链接时可以通过-L和-l来指定自己的库,因此链接可以通过,但是运行时,系统仍无法找到指定的库,需要配置一下。解决方法:1)首先确认 缺少的so库文件。2)之后用ldd 查看连接关系: ld..
2021-02-25 17:30:50 3466
原创 汇编调用c函数设置栈的原因
一.栈的整体作用(1)保存现场/上下文(2)传递参数:汇编代码调用c函数时,需传递参数(3)保存临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。1.保存现场/上下文在函数调用之前,应该将这些寄存器等现场,暂时保持起来(入栈push),等调用函数执行完毕返回后(出栈pop),再恢复现场。这样CPU就可以正确的继续执行了。保存寄存器的值,一般用的是push指令,将对应的某些寄存器的...
2018-03-08 19:38:03 532
原创 ARM汇编指令基础
1.二种指令集 CISC复杂指令集 RISC精简指令集2.二种架构冯诺依曼结构:程序和数据都放在内存中, 且不彼此分离。哈佛结构:程序和数据分开独立放在不同的内存块中,彼此完全分离。3.ARM 约定: Byte : 8 bits Halfword : 16 bits (2 byte) Word : 32 bits (4 byte)4.ARM 处理器工作模式: User : 非特权模式, 大部分任...
2018-03-02 16:58:15 2877
原创 ubuntu常用配置文件
/etc/network/interfaces 用于配置网络静态ip地址,设置dhcp。/etc/init.d/networking restart 重启网卡命令
2018-02-28 22:14:07 1044
原创 常用linux命令
ls -a 显示所有文件, 包括隐藏文件mkdir -p 级联创建文件夹cp -rf 用来复制文件夹cp -f 强制复制rm -r 删除文件夹ln -s 源文件名 符号连接文件名 ----创建软链接文件ln 源文件名 连接文件名 ----创建硬链接文件man 1 ls 1 表示查询的是 linux 命令man 2 xxx 2 表示查询的是...
2018-02-28 22:08:57 214
原创 vi命令
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:Ctrl+u:向文件首翻半屏;Ctrl+d:向文件尾翻半屏;Ctrl+f:向文件尾翻一屏;Ctrl+b:向文件首翻一屏;Esc:从编辑模式切换到命令模式;ZZ:命令模式下保存当前文件所做的修改后退出vi;:行号:光标跳转到指定行的行首;:$:光标跳转到最后一行...
2018-02-27 20:44:27 373
原创 使用busybox-1.28.0制作文件系统
如果利用busybox工具,制作linux根文件系统。首先从busybox官网上下载:https://busybox.net/downloads/),进行编译。这里我下载的是busybox-1.28.0.tar.bz2。将源码包放到 linux 目录中tar -xjvf busybox-1.28.0.tar.bz2解压。(1)在解压后的busybox文件夹中修改Makefile中的编译工具链和架...
2018-02-12 20:52:50 1721
原创 11111
编译busybox-1.24.1报错解决方法时间: 阅读: 评论: 收藏: [点我收藏+]标签:des com si it la sp 文件 方法 ha busybox-1.24.1.tar.bz21, 修改 Makefile找到以下2处修改为ARCH ?= armCROSS_COMPI
2018-02-05 00:36:05 699
转载 linux(ubuntu)编译busybox遇到的问题处理办法
今天研究了一下busybox的编译。自己下了一个busybox-1.25.0的版本(直接从busybox官网上下载:https://busybox.net/downloads/),进行编译,遇到了一些问题,通过百度搜索和自己摸索,也成功解决了,详细记录如下:首先交代一下系统版本和开发环境:操作系统:ubuntu 12.04(64bit)交叉编译工具链:arm-linux-gcc 4.4.3busy...
2018-02-05 00:32:18 8255 2
原创 linux编译错误问题记录
1.linux下编译busybox-1.28.0时使用make menuconfig出错问题:HOSTCC scripts/basic/fixdepIn file included from /usr/include/sys/socket.h:40, from /usr/include/netinet/in.h:25,
2018-02-04 23:23:41 1793
原创 Linux如何压缩和解压
命令格式:tar -zxvf 【压缩包文件名.tar.gz】 -C 【路径】/注释:解压.tar.gz格式到指定的目录下例如:tar -zxvf japan.tar.gz -C /tmp/命令格式:tar -jxvf 【压缩包文件名.tar.bz2】 -C 【路径】/注释:解压.tar.bz2格式到指定的目录下例如:tar -zxvf japan.tar.bz2 -C /t
2018-02-03 10:23:51 217
转载 ATSHA204A加密芯片
Atmel公司的ATAES132A,ATSHA204A和ATECC508A是完整的加密器件,ATSHA204A加密芯片是ATMEL公司研发的一款高安全性的,功能丰富的加密IC,使用SHA-256算法进行加密操作,内置16*32字节的slot(EEPROM)可以存储用户数据和秘钥,唯一的9字节序列号用于区分其他芯片,还有512bits的OTP区用于保存一些固定信息。芯片对外有2中通信方式,分别是单b
2018-01-25 14:00:32 15965 8
原创 assert_param()的使用
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。 所谓有效的参数是指满足规定范围的参数,比如某个参数的取值范围只能是小于3的正整数,如果给出的参数大于3,则这个assert_param()可以在运行的程序调用到这个函数时报告错误,使程序员可以及时发现错误,而不必等到程序运行结果的错误而
2018-01-10 21:23:12 2064
转载 示波器探头基础入门指南
示波器探头是示波器使用过程中不可或缺的一部分,它主要是作为承载信号传输的链路,将待测信号完整可靠的传输至示波器,以进一步进行测量分析。很多工程师很看重示波器的选择,却容易忽略对示波器探头的甄别。试想如果信号经过前端探头就已经失真,那再完美的示波器所测得的数据也会有误。所以正确了解探头性能,有效规避探头使用误区对我们日常使用示波器来说至关重要! 在绝大多数示波器测量环境下,我们都需要
2017-12-27 23:08:17 4220
转载 Ubuntu 将apt-get修改为163的源
1:编辑文件gedit /etc/apt/sources.list2:将文件的信息修改为如下deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse deb-src http://mirrors.163.com/ubuntu/ precise main universe restr
2017-12-26 23:34:18 3192
原创 编译 qt5.4.2-arm到开发板
执行下列操作前需先安装tslib。安装方法见:tslib1.4编译安装到ARM开发板下载 qt-4.7.3源码包(qt-everywhere-opensource-src-4.7.3.tar.gz),进入源码包的目录,然后解压缩,进入解压缩的目录,配置相应的选项内容保存到脚本 build-qt里面,脚本文件内容
2017-12-24 09:05:39 259
原创 tslib1.4编译安装到ARM开发板
一、安装 tslib1.4tslib 是一个开源程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖动、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。(1)安装 autoconf、 automake 和 libtool$ sudo apt-get install autoconf$ sudo apt-get install automake$ sudo
2017-12-22 23:45:04 715
转载 ubuntu QT开发环境(三种方法安装Qt4.8)
ubuntu QT开发环境(三种方法安装Qt4.8,其中apt-get方法安装QT库最简单)good方法一 QT4.8.0库+QT Creator 2.4.1特别声明:此方法极其耗时间,看电脑性能了。配置configure可减少编译时间1.下载Qt 。进入网址http://qt.nokia.com/downloads,下Qt libraries4.8.0 for L
2017-12-15 16:15:08 4713
原创 libc.so.6 not found版本太低问题
问题:libc.so.6: version `GLIBC_2.14′ not found原因:系统中安装的libc.so的版本太旧,不支持2.14;1、执行locate libc.so.6找到库的位置; /usr/lib64/libc.so.62、查看系统已支持的版本: strings /usr/lib64/libc.so.6 | grep GLIBC |tai
2017-12-15 16:07:35 3092
原创 linux下glibc-2.14安装
下载地址:http://ftp.gnu.org/gnu/glibc/下载glibc-2.14.tar.xz解压下载的文件,同时在该文件的目录下建立一个build目录。tar glibc-2.14.tar.gzcd glibc-2.14mkdir buildcd build安装步骤进入到之前建立的build目录下,../glibc_2.xxx/configure -
2017-12-15 15:57:30 55582 4
原创 Qt开发环境搭建和下载地址
Qt官网http://www.qt.io/download/Qt官网的镜像下载地址:1. 所有Qt版本下载地址:http://download.qt.io/archive/qt/2. 所有Qt Creator下载地址:http://download.qt.io/archive/qtcreator/3. 所有Qt VS开发插件下载地址:http://download.qt
2017-12-15 15:27:16 2124 1
原创 Ubuntu系统 apt-get update失败解决办法
(测试系统Ubuntu14.10和9.10)使用apt-get的时候发现ubuntu和阿里云均已经不提供该版本的源,所以需要找到其他的替代源。使用的ubuntu版本是14.10,属于非LTS(长期支持版本),因此前一段时间还可以使用apt-get update来更新源,现在已提示更新失败,无法下载,无法访问了。现提供一种解决思路供大家参考。第一步Ubutun版本的更新比
2017-12-14 18:42:20 22484 1
原创 开发板设置NFS挂载文件系统
在烧写了 u-boot之后,为了减少烧写根文件系统、调试程序之痛苦,本文档介绍如过tftp 下载内核,nfs服务挂接根文件系统启动系统,不用每次都烧到开发板上。一、NFS服务挂载根文件系统1、Linux 服务器端 NFS服务器的配置以root 身份登陆Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等。执行如下命令编辑文件/etc/e
2017-12-11 19:39:35 1318
原创 NFS开发环境搭建
(测试环境Ubuntu14)一、安装sudo apt-get install nfs-kernel-server(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)即分别安装:1.服务器端:sudo apt-get install portmap2.服务器端:sudo apt-get install nfs-kernel-ser
2017-12-11 16:05:03 525
原创 Linux内核添加设备驱动方法
有时我们希望驱动可以在Linux编译的时候通过make menuconfig添加和移除,可通过下面方法实现:1.LED驱动为例(1)在kernel\drivers\char\目录下创建一个led目录,之后编写的led驱动代码将放在这个目录中。(2)修改kernel\drivers\char\目录中的Makefile将led目录包含进去。即:在Makefile中添加 obj-y
2017-12-06 22:35:12 2865
原创 EXPORT_SYMBOL的作用浅析
在查看内核驱动代码的时候会经常看到在一些函数后面总会跟EXPORT_SYMBOL()这样的宏定义,通过网上查阅,它的作用大致总结如下:1、定义说明 把内核函数的符号导出,也可以理解成将函数名作为符号导出;符号的意思就是函数的入口地址,或者说是把这些符号和对应的地址保存起来的,在内核运行的过程中,可以找到这些符号对应的地址的。2、相关处理 (1)、对编
2017-10-17 19:20:30 5311
原创 现场保护与恢复
1.【标准现场保护与恢复】 示例:test.c#include stdio.h>void fun(int a) { printf("***********************%d*****************",a);}int main(void) { int i =
2017-09-30 16:44:52 1154
转载 1.ARM汇编学习——CPSR寄存器、CPSR_cxsf
1: ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 当前程序状态寄存器,CPSR中一些位被用于标识各种状态,一些位被用于标识当前出于什么工作模式。2:这个状态寄存器的32位可以分为四个8位的域,所以,如果CPSR后面加上,c,x,s,f都是容易理解的其中cpsr_c代表的是cpsr寄存器的低8位,也就是控制位.有些程序里这样
2017-09-30 09:18:05 10216
转载 keil分散加载文件
分散加载文件mem_a.scf,mem_b.scf,mem_c.scf,区别是加载地址不一样具体加载哪个,在DebugInExram->ARM Linker->Scatter定义,链接类型选择Scattered,image entry point一定要跟ROM_LOAD值一样//ROM_LOAD 为加载区的名称,其后面的0x00000000 表示加载区的起始地址(存放程序代码的起始
2017-09-19 16:17:45 4064
转载 BeagleBoneBlack学习(1)——启动流程与u-boot编译
BeagleBone 的核心处理器是 AM3358,AM335x 有四个不同的启动阶段:(1)ROM Code(处理器内部固化代码) (2)SPL(Secondary Program Loader) (3)U-BOOT (4)Linux Kernel为什么 AM335x 有多个启动阶段呢?直接从启动源加载 U-Boot 启动不是很方便?一个全功能的U-Boot可
2017-08-22 17:10:12 649
原创 安装和配置 minicom
安装 minicom:Linux-host:~$ sudo apt-get install minicom 在终端输入下面命令进入 minicom的配置界面:Linux-host:~$ sudo minicom –s加上“ -s”选项表示进入minicom 的配置界面。 选中“ Serial prot setup”菜单项, 然后按“Enter”键进入
2017-07-21 12:38:43 275
转载 nfs: server 192.168.6.102 not responding, still trying 挂载问题
首先先介绍一下硬件平台 ARM2440开发板 ,我这里遇到的问题是开发板在系统起来后能够挂载服务端 Ubuntu12.04系统的上的文件系统,但是当通过在u-boot阶段通过bootargs传参数给内核再启动的时候就会出现这个问题,如下图上网查找资料后发现无非说法就是说启动参数的问题,修改 rsize wsize 等参数,还有设置nolock等,但是都试验过不行,但是后面仔细打
2017-07-17 22:40:47 916
转载 在Makefile中得到自己所在的目录
Makefile 可能会以这样的方式被调用:make -f some_dir/Makefile all这种情况下, Makefile本身里面的命令不能对当前目录作出假设.GNU make手册里介绍了一个叫MAKEFILE_LIST的变量, 它是个列表变量, 在每次make读入一个make文件时, 都把它添加到最后一项, 这样:在Makefile的最开头, 通过访问这个变
2017-06-26 22:16:57 17431 2
转载 Makefile中的$(addprefix)
函数名称:加前缀函数—addprefix。函数功能:为“NAMES…”中的每一个文件名添加前缀“PREFIX”。参数“NAMES…”是空格分割的文件名序列,将“SUFFIX”添加到此序列的每一个文件名之前。返回值:以单空格分割的添加了前缀“PREFIX”的文件名序列。函数说明:示例: $(addprefix src/,foo bar) 返回值为“src/foo sr
2017-06-26 22:08:35 14525
转载 Makefile 里的 subst 函数
在Makefile中可以使用函数来处理变量。函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法为:$( )或${ }。参数间以逗号分隔,函数名和参数间以空格分隔。函数调用以“$”开头,以圆括号或花括号把函数名和参数括起。$(subst FROM, TO, TEXT),即将字符串TEXT中的子串FROM变为TO
2017-06-26 22:00:09 1297
转载 Makefile中的wildcard用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符
2017-06-26 21:52:19 402
转载 Makefile中的常用函数 - foreach、if、call、shell、value、eval
foreach循环函数foreach是Makefile中用来做循环的函数,它把可以重复利用一段脚本,但是每次又有不同的条件。它类似于Unix标准Shell(/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句。它的语法是: $(foreach var, list, text) 前两个参数var和list,参数
2017-06-26 21:47:19 16421 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人