自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (8)
  • 收藏
  • 关注

原创 AUTOSAR ECUM (1)

汽车电子 ECUM

2022-03-18 21:38:39 1201

原创 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

原创 keil代码连接地址修改

bootload拷贝APP代码到DRAM的某一地址,然后跳转运行APP.bootload部分代码如下:

2017-10-11 14:08:19 2286

原创 现场保护与恢复

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

原创 Code,RO-data,RW-data,ZI-data

2017-08-20 16:01:53 309

原创 安装和配置 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

python-3.7.6-amd64安装文件

python-3.7.6-amd64安装文件

2020-12-28

5.4.驱动框架入门之LED

驱动框架入门之LED代码和笔记,分析使用gpiolib的驱动框架部分,将一个写好的驱动程序源码添加到内核中,并且可以在内核中去配置该驱动的编译

2017-12-06

lcd12864说明书

12864中文说明书

2014-06-02

单片机c语言

单片机的c语言教程

2014-06-02

C8051的C语言

C8051的C语言的彻底应用

2014-06-02

LCD1602密码锁

LCD1602密码锁键盘键入密码LCD1602显示的密码锁!实现密码控制其他物品!

2014-06-02

nrf24l01无线传输

无线一对一发送LCD1602显示c程序远程实现温度监控LCD1602显示

2014-06-02

CD4001数据手册

CD4001数据手册

2013-12-26

空空如也

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

TA关注的人

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