![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式Linux开发
文章平均质量分 58
康米大侠
林花谢了春红,太匆匆,无奈朝来寒雨晚来风。。。。。。
展开
-
嵌入式linux动态库路径环境变量设置
Linux 系统上有两类根本不同的 Linux 可执行程序。第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。第二类是动态链接的可执行程序。1、静态可执行程序与动态可执行程序比较我们可以用 ldd 命令来确定某一特定可执行程序是否为静态链接的:[root@localhost Debug]# ldd /bin/ln linux-gate.so.1 => (0x00...原创 2022-02-14 17:32:23 · 295 阅读 · 0 评论 -
2021-11-03
命令行参数解析函数 —— getopt()getopt()函数声明如下:#include <unistd.h> int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; 该函数的argc和argv参数通常直接从main()的参数直接传递而来。optstring是选项字母组原创 2021-11-05 17:35:36 · 74 阅读 · 0 评论 -
嵌入式Linux通过nfs方式启动rootfs配置过程
前提:宿主机配置好了nfs服务这里使用nfs主要是做rootfs挂载。开发板中运行kernel做nfs客户端,宿主机中运行nfs服务。在宿主机的nfs服务器中导出文件夹形式的rootfs目录,在客户端中去挂载这个文件夹形式的rootfs进而去启动系统。步骤1:设置nfs启动方式的bootargs在uboot命令行修改bootargs的参数:setenv bootargs root=/dev/nfs...转载 2018-05-15 23:40:29 · 1904 阅读 · 0 评论 -
linux SPI驱动——spidev之driver(六)
一: spidev_init注册spidev 1: static int __init spidev_init(void) 2: { 3: int status; 4: 5: /* Claim our 256 reserved device numbers. Then register a class 6: * that will...转载 2018-05-15 15:59:44 · 473 阅读 · 0 评论 -
linux SPI驱动——spidev之deive(五)
1.定义board设备1: struct spi_board_info { 2: /* the device name and module name are coupled, like platform_bus; 3: * "modalias" is normally the driver name. 4: * 5: * platform_data goes to spi_device.dev....转载 2018-05-15 15:59:00 · 979 阅读 · 0 评论 -
linux SPI驱动——spi core(四)
一:SPI核心,就是指/drivers/spi/目录下spi.c文件中提供给其他文件的函数,首先看下spi核心的初始化函数spi_init(void)。1: static int __init spi_init(void) 2: { 3: int status; 4: 5: buf = kmalloc(SPI_BUFSIZ, GFP_KERNEL); /* 初始化缓存 */ 6: if (!b...转载 2018-05-15 15:58:20 · 314 阅读 · 0 评论 -
linux SPI驱动——gpio模拟spi驱动(三)
一:首先在我的平台注册platform_device,保证能让spi-gpio.c能执行到probe函数。 1: struct spi_gpio_platform_data { 2: unsigned sck; 3: unsigned mosi; 4: unsigned miso; 5: 6: u16 ...转载 2018-05-15 15:57:31 · 1905 阅读 · 0 评论 -
linux SPI驱动——简单的gpio模拟SPI驱动测试 (二)
1: /* 2: * Add by xuyonghong for duotin car radio fm 3: * Copyright (C) 2016-5-24 xuyonghong@duotin.com ...转载 2018-05-15 15:56:43 · 1492 阅读 · 0 评论 -
linux SPI驱动——spi协议(一)
一:SPI简介以及应用 SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处理控制单元 (MCU) 上叫作同步串行端口(Synchronous Serial Port) 的模块(Module)来实现的, 它允许 MC...转载 2018-05-15 15:55:02 · 439 阅读 · 0 评论 -
嵌入式linux flash分区配置 【转】
转自:http://hi.baidu.com/kebey2004/blog/item/5267968f5eeb9cf9f11f36f4.htmluboot 与系统内核中 MTD分区的关系:分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,等等。1:在内核MTD中可以定义分区A~B,C~D。。。。。。并与以绝对的地址赋上值。bootloader中只要能将内核下载到A~B区的A地址开始...转载 2018-05-30 22:19:18 · 2949 阅读 · 0 评论 -
关于嵌入式Linux系统flash分区设计及文件系统格式选择的一些浅见
嵌入式系统应用程序升级是比较频繁的,这就需要将flash进行合理的划分,一般情况,flash 的基本分区都有这几部分:1.uboot分区2.kernel分区3.rootfs分区这三部分是最基本的,一般都有。如果只是这样分区,然后应用程序和文件系统放在一起,这样的话会导致应用程序升级的时候比较麻烦,因为应用程序与文件系统放在了一起,每次升级的时候都要将文件系统重新擦除、写入,这样升级浪费时间,而且风...转载 2018-05-30 22:25:34 · 2101 阅读 · 0 评论 -
对于ARM的启动,系统升级,烧写过程和文件系统等方面的总结分析
本文所述的ARM的指的是Cortex A系列以及ARM9,ARM11,跑Linux操作系统。对于CortexM系列并不一定完全适用;谈到ARM以及启动和烧写等方面,首先我们要明确一下几个关键词:Uboot,Cmdline,启动方式选择,文件系统格式,存储介质,如NAND,EMMC,SD卡等下面一个一个做相关介绍:启动方式:一般CPU都可以配置为从多种介质启动,比如SPI Nor Flash,NAN...转载 2018-05-31 09:02:56 · 811 阅读 · 0 评论 -
嵌入式linux 运行期间升级u-boot,kernel和文件系统
本文主要就是介绍,在嵌入式Linux 系统下,已经实现了nand 驱动后, 如何利用mtd 工具,进行在线升级u-boot,Linux和文件系统。主要使用到的工具是mtd-utils-1.3.1,如果你需要源码,可以到官网下载http://www.linux-mtd.infradead.org/source.html。也可以等我有空上传到资源里面去下载。 在利用 mtd 工具升级系统前,需要有na...转载 2018-05-31 09:07:15 · 3492 阅读 · 0 评论 -
利用mtd工具实现嵌入式设备在线升级
主要思路是:通过web post方式将升级文件交给CGI程序处理,然后通过mtd工具实现设备在线升级.1.页面部分<form target="_blank" enctype="multipart/form-data" method="POST" action="./update.cgi"><p>选择升级文件: <input type="file转载 2018-05-31 09:07:59 · 853 阅读 · 1 评论 -
PLC开发相关网址
http://mat.sourceforge.net/IEC ST/IL compiler:http://mat.sourceforge.net/manual/logic/iec/intro.html原创 2018-06-07 11:45:22 · 286 阅读 · 0 评论 -
嵌入式linux设备中应用运行日志的实现
嵌入式linux设备中应用运行日志的实现 最近在做一个项目时,需要记录设备运行中情况,以方便对故障进行跟踪定位,完善.所以决定采用记录程序运行日志,经过在网上搜索,采用Log4cplus+BOA方案,log4cplus记录日志,boa作为web服务器,通过网页的形式展示日志信息. 开发环境:嵌入式linux,C/C++,arm-fsl-linux-gnueabi-交叉编...原创 2019-01-06 11:52:10 · 2534 阅读 · 0 评论 -
C/C++log日志库比较
C/C++log日志库比较 转至:https://blog.csdn.net/gatieme/article/details/506036822016年01月28日 23:21:24 JeanCheng 阅读数:29746版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme https://blog.csdn....转载 2019-01-02 22:38:09 · 4648 阅读 · 0 评论 -
嵌入式系统系统升级内核双备份的实现方式
转载:https://www.xuebuyuan.com/1023344.html1.nand flash MTD分区 kernels/linux-2.6.31.1-cavm1/drivers/mtd/maps/xxxxx-flash.c /* MTD partitions: From CNW5602 32MB * mtd0: 0x...转载 2019-09-27 10:16:30 · 1574 阅读 · 0 评论 -
io端口与io内存详解
(一)地址的概念1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。物理地址空间,一部分给物理RAM(内存)用,一部分给总线用,这是由硬件设计来决定的,因此在32bits地址线的x86处理器中...转载 2018-03-02 14:29:43 · 3643 阅读 · 0 评论 -
CentOS yum 源的配置与使用
一、yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是转载 2015-02-14 13:36:13 · 304 阅读 · 0 评论 -
解决Redhat Linux5 yum出现This system is not registered with RHN的方案
最近博主在学习Linux,菜鸟级别的的选手连装个Chrome都觉得难,悲了个催的……百度了很多教程,大多是类似的。博主的配置是在VM8下搭建的RHEL5.3(Tikanga)版本,不知道什么原因,每次在输入yum install google-chrome-stable之后就会出现“Thissystem is not registered with RHN”的错误提示,蛋疼不已。百度无果后转载 2015-02-28 16:18:34 · 717 阅读 · 0 评论 -
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET 转载:select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET 从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习。 select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系转载 2015-06-06 13:46:16 · 390 阅读 · 0 评论 -
Segmentation Fault in Linux 原因与避免
非原创,转载于:http://www.cnblogs.com/no7dw/archive/2013/02/20/2918372.html原作者( ZX_WING(xing5820@163.com)写得很好,加上之前的确遇到过很多信号问题,产生了很多疑问,原创的两张图失效了,转贴补充之。1.什么是“Segmentation fault in Linux”? 我们引用wiki转载 2015-07-09 15:12:40 · 556 阅读 · 0 评论 -
Linux:signal调用类成员函数
Unix:signal调用类成员函数 (2013-05-19 18:29:51)转载▼标签: 杂谈分类: Unix_Programming 这个问题早在使用signal时就碰到过,好不容易找到signal使用static型类成员函数的方法,但是发现不能传递参数,终究还是不行,直到在《APUE》上看到pthread转载 2015-07-06 15:58:48 · 4032 阅读 · 0 评论 -
利用GoAhead构建嵌入式web应用
关键字:GoAhead, 嵌入式web服务器, web应用摘要:详细介绍了开源嵌入式web服务器GoAhead的原理,并结合具体实例说明如何利用它构建嵌入式web应用。Key words: GoAhead, embedded web server, web applicationAbstract: This paper introduces the principle of open转载 2015-11-06 17:55:49 · 491 阅读 · 0 评论 -
利用GoAhead构建嵌入式web应用
关键字:GoAhead, 嵌入式web服务器, web应用摘要:详细介绍了开源嵌入式web服务器GoAhead的原理,并结合具体实例说明如何利用它构建嵌入式web应用。Key words: GoAhead, embedded web server, web applicationAbstract: This paper introduces the principle of open转载 2015-11-06 17:58:30 · 2299 阅读 · 0 评论 -
CGI C上传文件以及大小限制修改
CGI C上传文件以及大小限制修改 BOA+CGIC,发现用它那个测试程序上传文件时只能传1MB大小左右,后来搜索网络,发现是BOA搞的鬼,方法2种:1、修改源代码的defines.h里面的宏SINGLE_POST_LIMIT_DEFAULT2、修改boa.conf里面的SinglePostLimitcgic文件命令为:upload.c#inc转载 2015-10-09 14:42:51 · 2411 阅读 · 0 评论 -
boa+cgi上传文件
boa+cgi上传文件从网上下的开源代码boa+cgi,移植到arm里做个在线升级,曾以为最难的flash擦写先搞定了,却卡在上传文件这块。问题是超过400K的文件不能上传,连.cgi文件也没有执行,或者执行却失败了(至少没有执行到.cgi的main函数第一句)。既然小文件能上传,那么可以判定不是代码的问题,何况代码是开源下载基本没做实质性的更改;内存也够了,还有20多兆空间,分区虽然转载 2015-10-09 14:40:50 · 3001 阅读 · 1 评论 -
Linux下的CGI和BOA使用期间遇到的问题汇总
(笔记)Linux下的CGI和BOA使用期间遇到的问题汇总前段时间在做C/S模式下的视频监控,这段时间是B/S模式下的。期间遇到了不少问题,有些问题一卡就是几天,有些问题的解决办法在办法在网上也不是很好找,所以还有些问题虽然得到了临时解决,但是其原理现在我本人也还搞的不是很清楚,在这里也希望有大家的指点交流。现在我就将这些错误稍作总结,可供大家学习借鉴,同时也希望得到大家的指点指正。转载 2015-09-21 10:29:51 · 1078 阅读 · 2 评论 -
值得学习的C/C++语言开源项目
值得学习的C/C++语言开源项目(1)ACE庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。http://www.cs.wustl.edu/~schmidt/ACE.html(2)AsioAsio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。开源、免费,支持跨平台。http://think-async.com/转载 2017-07-28 22:36:44 · 959 阅读 · 1 评论 -
Segmentation fault到底是何方妖孽
Segmentation fault到底是何方妖孽2013-10-23 23:13:41 分类: LINUX 前两天和阿彬扯淡的时候(注意不是扯蛋),他说自己一个礼拜解决了三个Core dump,华丽丽之极,让我对其敬仰、膜拜之情如滔滔之江水,绵绵不绝。今天我也来谈一下Linux环境下开发时经常遇到的“Segmetation fault”的一点点个人看法,也算是抛砖引转载 2017-09-06 14:44:33 · 6170 阅读 · 1 评论 -
嵌入式Linux下设备热插拔检测机制
转载至CSDN;Breathomnudevmonitor 的原理也是捕捉 netlink 的 socket 消息,这个消息是内核发出的,打印出来的消息跟我上面的小程序一样,2.6内核支持udev,udev是在用户空间实现的程序,在终端输入 udevmonitor(有的版本或许是 udevadm -monitor) 然后插拔 USB 设备,可以看到提示信息。转载至CSDN;erigido转载 2017-09-21 09:05:35 · 1991 阅读 · 0 评论 -
嵌入式 使用udev高效、动态地管理Linux 设备文件
以下文章来至:http://www.cnblogs.com/lidabo/p/5382660.html本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的用户受益匪浅,这些用户包括 Lin转载 2017-09-21 09:11:36 · 332 阅读 · 0 评论 -
嵌入式linux之hotplug_uevent驱动(热拔插)
mdev是udev的简化版本,是busybox中所带的程序,最适合用在嵌入式系统,而udev一般用在PC上的linux中,相对mdev来说要复杂些,devfs是2.4内核引入的,而在2.6内核中却被udev所替代,他们有着共同的优点,只是devfs中存在一些未修复的BUG,作者也停止了对他的维护,最显著的一个区别,采用devfs时,当一个并不存在的设备结点时,他却还能自动的加载对应的设备驱动,而u转载 2017-09-21 09:30:04 · 631 阅读 · 0 评论 -
IO端口、IO内存、IO空间、内存空间的含义和联系
1,IO空间:X86一个特有的空间,与内存空间独立的空间,同样利用IO空间可以操作数据,只不过是利用对应的IO端口操作函数,例如inb(), inbw(), inl(); outb(), outw(), outl()等。 2,内存空间:内存地址的寻址范围,例如32位操作系统内存空间为2的32次幂,即4G。 3,IO端口:当外部寄存器或内存映射到IO空间时,即只能用IO端口操作函数进行...转载 2018-03-02 08:38:32 · 3047 阅读 · 0 评论 -
来认识寄存器,内存,IO空间,IO端口,IO内存
整天说内存,寄存器,端口,他们有什么联系,有什么不同之处,你了解他们么? 第一、寄存器和内存的区别寄存器和内存都是可以用来读写的,但寄存器的操作时有副作用,称之为(side effect 边际效果)读取一个寄存器可能导致寄存器中的内容发生变化,比如在一些设备的中断状态寄存器中,读取了寄存器后会自动清零第二、IO空间和内存空间并不是所有的体系结构都有IO空间这个定义的,我所了解的只有X86体系上有,...转载 2018-03-02 08:45:47 · 508 阅读 · 0 评论 -
执行make menucofig发生错误“Unable to find the ncurses libraries or the required header files”的解决方法
起始执行 make menuconfig 有错误发生错误:*** Unable to find the ncurses libraries or the*** required header files.*** 'make menuconfig' requires the ncurses libraries.****** Install ncurses转载 2015-02-13 11:09:25 · 864 阅读 · 0 评论