Linux
文章平均质量分 66
maopig
这个作者很懒,什么都没留下…
展开
-
部分Nand flash uboot 命令详解
nand info & nand device显示flash的信息:DM365:>nand infoDevice 0: NAND 32MiB 3,3V 8-bit, sector size 16 KiBDM365:>nand deviceDevice 0: NAND 32MiB 3,3V 8-bitnand read(.oob) addr off size不管是读取data, 使用nand read,还是读取oob,使用命令nand read.oob..原创 2022-05-25 16:03:32 · 838 阅读 · 1 评论 -
NFS服务端的安装
执行以下四步操作即可完成在虚拟机上安装完成NFS的服务端:第一步:在虚拟机上安装nfs服务: sudo apt install nfs-kernel-server 第二步:修改文件 sudo vi /etc/exports 在文件末尾增加 /home/zzf/hisi-sdk 192.168.12.0/24(rw,sync,no_subtree_check)其中:/home/zzf/hisi-sdk 为服务端需要映射的文件夹 192.168.12.0/24(...原创 2021-12-16 10:29:42 · 3473 阅读 · 0 评论 -
进程间五种通信方式
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1、特点: 它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。 它只能用于具原创 2020-08-21 09:48:19 · 521 阅读 · 0 评论 -
移植opencv3.20到3556AV100
1.移植环境:Ubuntu14.04+ arm-hisiv200-linux- opencv3.20下载地址 2.移植步骤: 1)安装cmake-gui 2)新建一个opencv目录存放opencv-3.2.0.zip,并解压 击Browse Source选择~/hisi/opencv/opencv-3.2.0 点击Browse Build选择~/hisi/opencv/build 点击Configure 此时出现的对话框选择最后一项:..原创 2020-07-09 16:16:39 · 293 阅读 · 0 评论 -
内核理解
在纯技术方面,内核是硬件与软件之间的一个中间层。其作用是将应用程序的请求传递给硬件,并充当底层的驱动程序,对系统中的各种设备和组件。内核启动init程序作为第一个进程,该进程负责进一步的系统初始化操作,并显示登录提示符或是图形登录界面。因此init是进程数的根,所有进程都直接或是间接起源该进程!内存映射: 内存映射是一种重要的抽象手段,在内核中大量使用,也可以用于用户应用程序。原创 2012-03-17 18:24:00 · 1283 阅读 · 0 评论 -
NAND FLASH & ECC
NAND需要ECC以确保数据完整性。NAND闪存的每一个页面上都包括额外的存储空间,它就是64个字节的空闲区(每512字节的扇区有16字节)。该区能存储ECC代码及其它像磨损评级或逻辑到物理块映射之类的信息。ECC能在硬件或软件中执行,但是,硬件执行有明显的性能优势。在编程操作期间,ECC单元根据扇区中存储的数据来计算误码校正代码。数据区的ECC代码然后被分别写入到各自的空闲区。当数据被读出时,E原创 2012-12-09 23:20:01 · 1406 阅读 · 0 评论 -
linux_NandFlash_driver_超详细分析 .
分类: Linux 驱动 Nand 驱动2011-11-06 23:16 474人阅读 评论(0)收藏 举报 今天学习了NandFlash的驱动,硬件操作非常简单,就是这个linux下的驱动比较复杂,主要还是MTD层的问题,用了一下午时间整理出来一份详细的分析,只是分析函数结构和调用关系,具体代码实现就不看了,里面有N个结构体,搞得我头大。 我用linux2转载 2012-12-10 18:44:22 · 9238 阅读 · 0 评论 -
关于NAND flash的MTD分区与uboot中分区的理解 .
今天做内核移植,准备添加NAND flash的驱动,做到MTD分区时,想起在一本书上看到的一句话,说的是分区时每个区之间没有间隙,前一个区的结束地址是后一个区的起始地址。可是当我看我的开发板的教程时,分区如下:static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name转载 2012-12-10 18:24:20 · 2327 阅读 · 0 评论 -
ARM Linux启动过程分析
1. 引 言 Linux 最初是由瑞典赫尔辛基大学的学生 Linus Torvalds在1991 年开发出来的,之后在 GNU的支持下,Linux 获得了巨大的发展。虽然 Linux 在桌面 PC 机上的普及程度远不及微软的 Windows 操作系统,但它的发展速度之快、用户数量的日益增多,也是微软所不能轻视的。而近些年来 Linux 在嵌入式领域的迅猛发展,更是给 Linux 注入了新的转载 2012-12-11 23:38:18 · 1228 阅读 · 0 评论 -
内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的
原文初始化代码读取uboot到内存里面,然后跳转到uboot那里去执行uboot,uboot初始化必要的硬件,加载一些驱动,其中包括nand flash的驱动,然后根据uboot里面设置的一个启动命令TAG: NAND rootfs Flash 【系统启动过程简介】初始化代码读取uboot到内存里面,然后跳转到uboot那里去执行uboot原创 2012-12-16 23:57:55 · 2745 阅读 · 0 评论 -
U-Boot如何向内核传递Flash的分区信息
1.如何对nand 分区。修改mtdparts环境变量就可以了么?对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直接使用分区的名字而不必指定分区的偏移位置.set bootargs noinitrd console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2转载 2012-12-16 23:34:34 · 3352 阅读 · 1 评论 -
Linux系统中/dev/mtd与/dev/mtdblock的区别
MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码在/drivers/mtd子目录下。我将CFI接口的MTD设备分为四层(从设备节点直到底层硬件驱动),这四层从上到下依次是:设备节点、MT转载 2012-12-17 23:36:03 · 1635 阅读 · 0 评论 -
linux多线程编程5--信号量(semaphore)
信号量本质上是一个非负的整数计数器,也是UNIX中古老的实现进程互斥和同步的手段,Linux下信号量概念是在线程中,信号则在进程控制中,不过原理差不多,最基本最经典的操作莫过于P、V操作了,能实现进程、线程的互斥和同步操作,非常值得深入理解。1.P、V操作原语 P操作: proceduce P(var s:semaphore){ begin s:=s-1;转载 2012-12-17 23:30:01 · 1396 阅读 · 0 评论 -
uboot 与系统内核中 MTD分区的关系
分类: Nand 驱动 2011-11-06 23:48 705人阅读 评论(2)收藏 举报 uboot 与系统内核中 MTD分区的关系:分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,等等。1:在内核MTD中可以定义分区A~B,C~D。。。。。。并且以绝对的地址赋上值。bootloader中只要能将内核下载到A~B区的A地址开始处就可以,转载 2012-12-10 17:49:27 · 1121 阅读 · 0 评论 -
极详细的ECC讲解 -OOB与ECC
http://blog.csdn.net/dongzhichen/article/details/8249228 详细的ECC讲解 -OOB与ECC 在网络编程中OOB(out of band)带外数据在MTD设备中OOB 如下所示:http://www.cnblogs.com/bcxx_qin/archive/2009/06/11/1501271转载 2012-12-04 23:38:15 · 20200 阅读 · 1 评论 -
YAFFS2文件系统在嵌入式LINUX系统中的应用
YAFFS2文件系统在嵌入式LINUX系统中的应用2011-03-31 19:59 181人阅读 评论(0)收藏 举报1.文件系统简述随着32位CPU价格不断下跌,片上存储设备的容量相比越来越大,越来越多的嵌入式系统开始应用各种嵌入式操作系统。一般在嵌入式领域,只要应用到操作系统的必然会需要一个,甚至是多个文件系统。所谓文件系统,实际上就是在一个具体的存储设备上转载 2012-12-05 00:11:45 · 1879 阅读 · 0 评论 -
Omap3530 的GPIO中断设置
Omap3530 的GPIO中断设置: 1.配置成GPIO,申请GPIO中断omap_cfg_reg(OMAP3_KBD_GPIO);配置成gpioif (gpio_request(OMAP3_KBD_GPIO, "kbd7279 IRQ") printk(KERN_ERR "Failed to request GPIO%d for kbd IRQ/n");//申请GPIO为中转载 2012-04-06 09:09:54 · 3025 阅读 · 0 评论 -
DAVINCI DM365-368中 linux-2.6.32的移植
http://www.360doc.com/content/12/0318/16/532901_195392228.shtml 很详细的一篇文章,在此感谢了! http://www.rosoo.net/a/201001/8316.html DM系列芯片外设详细介绍原创 2012-03-21 12:23:11 · 2155 阅读 · 0 评论 -
pthread_cond_wait
1. 首先pthread_cond_wait 的定义是这样的The pthread_cond_wait() andpthread_cond_timedwait() functions are used to block on a condition variable. They are called withmutex locked by the calling thread or undef原创 2012-07-18 22:57:09 · 4527 阅读 · 0 评论 -
嵌入式系统中看门狗概述。。。
一直以来对于嵌入式中的watch dog(看门狗)都比较陌生,一直都不知道它到底是做什么的,单从名字上看也不知其所以然,然后就在网上找到了一篇blog,就是再说看门狗的作用和概述,原文如下: 1、概述: WATCHDOG对于没有底层开发经验的开发人员来说,可能比较陌生,但是它在系统起到非常重要的作用,相当于系统警察,当系统发生严重错误(如程序进入死循环等)不能 恢复的时候原创 2012-01-03 20:14:04 · 21460 阅读 · 1 评论 -
ARM板子启动出现:crc error-- System halted
NAND read: device 0 offset 0x40000, size 0x800000Reading data from 0x83fe00 -- 100% complete. 8388608 bytes read: OKBoot with zImageStarting kernel ...Uncompressing Linux..............转载 2012-12-01 16:34:46 · 6325 阅读 · 1 评论 -
mkyaffs2image的用法
在Ubuntu中第一次使用mkyaffs2image命令时,会提示mkyaffs2image:找不到命令还需要安装mkyaffs2imagehttp://code.google.com/p/fatplus/downloads/detail?name=yaffs2-source.tar&can=2&q=下载yaffs2-source.tar 解压后,进入utils文件夹,然后转载 2012-12-03 20:38:00 · 3820 阅读 · 0 评论 -
FTP命令解析
FTP命令详解 FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。 FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中 -v显示转载 2012-11-21 11:02:56 · 904 阅读 · 0 评论 -
Y/C分离/2/3D滤波器
待整理http://blog.csdn.net/yangzhifu/article/details/7388101 http://wenku.baidu.com/view/f997d705cc1755270722086d.html原创 2012-12-22 14:56:45 · 1390 阅读 · 0 评论 -
FPGA的ip核之概念和分类
ip核之概念和分类IP(Intellectual Property)内核模块是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路、器件或部件。它有几种不同形式。IP内核模块有行为(behavior)、结构(structure)和物理(physical)3级不同程度的设计,对应有主要描述功能行为的“软IP内核(soft IP core)”、完成结构描述的“固IP内核(firm IP转载 2012-12-22 14:42:31 · 19370 阅读 · 1 评论 -
深入理解pthread_cond_wait、pthread_cond_signal
===============================man pthread_cond_wait的解释==========================LINUX环境下多线程编程肯定会遇到需要条件变量的情况,此时必然要使用pthread_cond_wait()函数。但这个函数的执行过程比较难于理解。 pthread_cond_wait()的工作流程如下(以MAN中的EX转载 2017-03-12 13:56:14 · 2742 阅读 · 0 评论 -
Linux驱动静态编译和动态编译方法详解
内核源码树的目录下都有两个文档Kconfig和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这个.config,就知道了用户的选择。上面转载 2017-04-05 23:37:58 · 2950 阅读 · 0 评论 -
Linux学习笔记——例说makefile 增加宏定义
从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力。所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法。 例说makefile分为以下几个部分,更多内容请参考【例说makefile索引博文】 1.只有单个C文件转载 2017-04-06 14:27:57 · 4045 阅读 · 0 评论 -
GDB调试core文件样例(如何定位Segment fault)
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (Linux中如果内存越界会收到SIGSEGV信号,然后就会core dump)在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、trace信息输出转载 2017-06-21 21:28:06 · 1179 阅读 · 0 评论 -
linux用户管理(1)----创建用户(adduser和useradd)和删除用户(userdel)
arm linux的系统用户管理:1、删除root用户:deluser root2、删除tt用户:deluser tt3、建立root用户:adduser root4、linux用户和密码的管理(ftp,系统用户等等)主要在:/etc/目录下面的四个目录: group, group-,passwd , passwd-5、建立好用户名后和密码,可以将上面的原创 2017-07-15 16:21:50 · 4065 阅读 · 0 评论 -
Linux驱动设计ioctl函数的cmd参数不能为2
Linux驱动程序设计的时候偶然发现的ioctl()函数的cmd参数不能为2,如果为2,ioctl()函数返回-1,网上说就是这样的,正常,不知道为什么,stack overflow上有一个外国学友的建议:“In general, you want to compose your ioctl commands using the _IO family of macros, wi转载 2017-08-04 10:58:38 · 1158 阅读 · 0 评论 -
linux多线程学习设置线程调度权限
pthread_setschedparam 设置线程的权限int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param)参数 1. target_thread是使用pthread_create所获得的线程ID。 2.线程的调度有三种策略:SCHED_OT转载 2017-08-20 08:33:00 · 1965 阅读 · 0 评论 -
相机工作原理
轻轻一按,你的相机就把光子转换为了比特。于是一张相片就保存到了你的 iPhone 里。让我们假设一下你身处室外,环顾四周。三亿里之外,太阳无时无刻不在发射光子。它们需要花上 8 分钟之久才能到达我们舒适的星球。有一些光子撞击到你周围的物体,并反射到你眼睛的视网膜上,这会使你的大脑以这些物体为基准,创建一副图像,我们将其称之为视觉。摄影要做的就是捕获这幅图像。摄影是在 200 年前被转载 2017-09-01 18:49:24 · 2207 阅读 · 0 评论 -
Linux用户空间与内核地址空间
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存转载 2017-09-02 11:35:54 · 8003 阅读 · 0 评论 -
Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)
本篇文章主要介绍了"Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)",主要涉及到Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)方面的内容,对于Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)感兴趣的同学可以参考一下。【转】(转)Linux内转载 2017-02-27 13:13:39 · 3074 阅读 · 0 评论 -
linux驱动中地址空间转换
在linux kernel 中,物理地址是不能直接使用的,必须通过转换才可以。转换分为两种, 静态和动态。静态就是下面那种,不过,静态的地址转换,还需要在kernel 初始化的时候作映射。 动态映射是使用 ioremap 函数 。[cpp] view plain copy #define SL2312_GPIO_BASE 0x4D000000转载 2017-02-26 17:56:54 · 1822 阅读 · 0 评论 -
Linux进程间通信——使用共享内存
//本文转载http://blog.csdn.net/ljianhui/article/details/10253345下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一转载 2015-12-13 16:49:37 · 4271 阅读 · 0 评论 -
Linux Kconfig及Makefile学习
内核源码树的目录下都有两个文档 Kconfig (2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了 所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这 个.conf转载 2013-06-16 15:54:07 · 1219 阅读 · 0 评论 -
Kconfig文件结构(图文)简介
1 Kconfig和Makefile毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。基本上,Linux 内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。Kconfig和Makefile就好似一个城市的地图,地图引导我们去 认识一个城市,而Kconfig和Makefile则可以让我们了解一个内核目录下面的结构。在希望研究内核的某个转载 2013-06-16 16:28:17 · 1854 阅读 · 2 评论 -
Linux系统下UDP发送和接收广播消息小例子
分类: 网络通信 2013-01-07 10:54 1336人阅读 评论(6)收藏 举报[cpp] view plaincopyprint?// 发送端 #include #include #include #include #include #include #include #incl转载 2013-09-23 16:37:09 · 2022 阅读 · 0 评论