
嵌入式Linux开发历程
本人从事ARM(Altera Cyclone5,本质为双核A9+FPGA)+Linux的工作记录
凌X绦
这个作者很懒,什么都没留下…
展开
-
指针、数组、函数的组合,“const”、“char”、“*”、“p”的组合
前言:结合含义普通函数返回类型为基本类型(int、float、char等)、构造类型(struct、enum等)、空类型(void)的函数指针函数返回类型为指针类型((int *)、(float *)、(char *)、(struct XX *)、(void *)等)的函数函数指针指向函数的指针,格式为:type (*func)(参数列表)普通数组由基本类型(int、float、char等)、构造类型(struct、enum等)、空类型(void)构成的数组原创 2020-08-18 09:17:05 · 359 阅读 · 0 评论 -
使用Matlab将传感器采集到的数据导入,拟合成曲线
函数:通过使用函数,可以对程序进行更加好的组织。将一些相对独立的代码变成函数,可以提高程序的可读性和重用性。避免重复编写大量相同的代码。121.语法方法...原创 2020-08-17 15:09:48 · 4309 阅读 · 1 评论 -
嵌入式Linux设备启动logo设置
前言PBM/PGM/PPM的分类PBM:位图(bitmap),仅有黑与白,没有灰,老大PGM:灰度图(grayscale),老二PPM:通过RGB三种颜色显现的图像(pixmaps),老三PBM/PGM/PPM 图片是同类图片格式,图像文件格式为文件类型(P1/P2/P3/P4/P5/P6/)+ 注释(“# XXXX”) + 宽度与高度(XXX XXX)+ 最大像素值(XXX) + 编码(ASCII 或 Binary)Magic NumberTypeEncodingP1原创 2020-08-17 14:02:41 · 539 阅读 · 0 评论 -
用户态和内核态的内存映射
前言:参考链接:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h> #include <sys/mman.h>#include <linux/fb.h>#if 0struct fb_var_screeninfo vinfofb0;struct fb_fix_screeninfo finfofb0;#endift原创 2020-08-14 13:57:15 · 1050 阅读 · 0 评论 -
终端SSH连接Ubuntu、开发板NFS连接Ubuntu
前言:无前言1. 终端SSH连接Ubuntu,以XShell为例1.1 Windows端安装完XShell安装过程略1.2 Windows端设置虚拟机网络连接模式将网络连接设置为桥接模式1.3 Ubuntu端的设置1.3.1 查看当前虚拟机IP地址# 查看当前Ubuntu的IP地址$ ifconfigens33 Link encap:以太网 硬件地址 00:0c:29:88:9b:ba inet 地址:192.168.4.xxx 广播:192.16原创 2020-08-13 15:08:16 · 1224 阅读 · 0 评论 -
嵌入式Linux 文件系统制作,使其支持中文
前言:本文涉及到制作嵌入式Linux文件系统,也涉及到编码种类继续完善中,待更……参考链接UTF、GBK等编码以及嵌入式linux支持中文显示:https://blog.youkuaiyun.com/weixin_43369409/article/details/90380100说明1:Windows的编码方式为GB2312验证方式:cmd中输入“chcp”,返回值为“活动代码页:936”,如下图所示说明2:虚拟机装的Ubuntu的编码方式为UTF-8验证方式:在终端中输入“locale”,返回原创 2020-08-13 10:52:18 · 2486 阅读 · 0 评论 -
关于嵌入式Linux的存储设备热插拔、挂载与映射至电脑
前言:本文所说的嵌入式Linux存储设备包含:U盘、SD卡、NandFlash分区。本文主要实现嵌入式Linux在开机后,可自动检测存储外设(U盘/SD卡)是否插入,对存储设备(U盘/SD卡/NandFlash分区)进行自动挂载。也实现模拟嵌入式Linux设备当成U盘设备插入电脑,即通过USB数据线连接电脑,可指定存储设备(SD卡/NandFlash分区)其中一种映射到电脑上,即“计算机”下的“可移动存储设备”下有XX盘。笔者的开发板存储设备对应的设备如下:存储设备设备路径挂载路径原创 2020-08-13 10:47:35 · 1689 阅读 · 0 评论 -
Linux下C语言实现文件读写操作(包含在应用层与驱动层)
前言:配合团队内的小伙伴做数据转换,他需要我将保存在.txt文件内的字符数据(十六进制)转换为二进制,也需要我将.Bin文件内的二进制数据转换为字符数据(十六进制)。下面所贴的程序有很大的优化空间,每次读取数据的量太小,需要频繁IO操作,导致运行速度变得很慢。1. 数据转换程序的原始模板(C语言的文件操作):#include <stdio.h>#include <string.h>int main(int argc, char *argv[]){}原创 2020-08-10 10:34:44 · 2581 阅读 · 1 评论 -
Linux下的共享内存的使用
前言:工作中有一块涉及到Linux下两个进程以上的进程间数据交互,后来因为种种原因不使用了。当时参考网上的接收端与发送端的共享内存程序,重新编写为适合加进工程内使用的形式。程序中进程间通信使用了共享内存(Share Memory)与信号(Signal)这两种方式。笔者对共享内存(Share Memory)的理解:Linux系统上开辟一块内存空间,而这块内存空间是所有进程都能访问的空间,不是进程的独有资源。笔者对信号(Signal)的理解:类似MCU、SoC等嵌入式芯片的中断机制,可理解为操作系统的软原创 2020-07-31 15:16:37 · 715 阅读 · 0 评论 -
关于Ubuntu软件/依赖库的降级问题
前言:在Ubuntu中安装新的软件/依赖库时,经常会遇到环境中已经安装了该软件/依赖库的依赖文件的新版,而需要安装的软件/依赖库所需的为旧版依赖文件。1. 关于Ubuntu软件/依赖库的降级问题:1.1 安装软件/依赖库时出现的问题:sudo apt-get install libglib2.0-dev正在读取软件包列表... 完成正在分析软件包的依赖关系树正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态原创 2020-07-28 15:00:47 · 6953 阅读 · 2 评论 -
通用Makefile模板与编译Linux的脚本
前言:由于工作,编译应用层程序、编译动态库、编译静态库、编译Linux驱动模块,因此需要一个强大的Makefile的模板,只需要通过开关方便控制编译方向。后面附带一个用于Linux源码下的内核配置(.config)、编译内核(zImage)、编译设备树(.dtb)、编译内核模块(.ko)、清除配置的Shell脚本。需要执行某个功能时,指定交叉编译器的命令不可注释(条件),取消注释可实现该功能的命令,其他行功能的命令继续注释。1. 编译应用层程序的Makefile模板2. 编译动态原创 2020-07-28 14:52:25 · 498 阅读 · 0 评论 -
Linux Shell脚本入门第一步到第N步
前言:个人认为,Shell的本质就是将需要在终端运行的命令写成一个可运行的文件[可称其为脚本],并通过各种方法使脚本很方便的运行1. 第一个Shell脚本cd Shell_Probject/vim shell01.sh#!/bin/bashread stringecho "Hello"echo -e "World!\n"echo "$string write"echo "This is a Test File" >> ./test.txt# 运行:./shell01.原创 2020-06-09 15:11:34 · 579 阅读 · 0 评论