Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

在Matlab中使用光滑曲线连接点

在Matlab中使用光滑曲线连接点

有时候,我们需要找到一个好办法来描出目标的轮廓,我们希望可以在matlab里用光滑曲线来勾画物体。在matlab的 Image Processing Toolbox中,有一些交互式的工具用来画线。不过,使用 imfreehand 之类的函数做这件事并不容易,因为我们很难用鼠标精确的画图。除非我们去买一个手写版,至少很多人都没有这个设备。impoly 这个函数可以让我们更好的在目标边界上选择点,然后它可以构建一个多边形来逼近这个目标。不过,如果我们要光滑拟合...
飞凌2440开发板挂载NFS

飞凌2440开发板挂载NFS

使用嵌入式Linux不长,今天尝试着NFS挂载。挂载成功,在这里记录一下。飞凌2440开发板我的操作步骤是这样的:1.将开发板的串口线和网线连接好,然后打开开发板的电源。2.打开串口调试助手,登陆到开发板的系统中。3.然后打开PC上的linux虚拟机,首先保证双方的网络能够ping通,我在试验的时,开发板的IP是:192.168.1.15, linux虚拟机的IP是192.168.1.120。现在就可以做试验进行挂载了。4.linux虚拟机上的修改:(1)...
Linux驱动开发----块设备驱动(内存模拟)Tiny6410

Linux驱动开发----块设备驱动(内存模拟)Tiny6410

写了好久的字符设备驱动,是时候看下块设备驱动程序设计方法了,块设备驱动和字符设备不同,字符设备是直接和虚拟文件系统进行交互,而块设备驱动则是通过块缓冲/调度层间接和虚拟文件系统交互;块设备驱动数据访问都是以块为单位;多个块I/O需要组成一个请求队列,这个功能是块缓冲/调度层提供的,它出于硬件特性和读写性能的考虑,将块I/O进行重新排序,并组成一个请求队列,交给内核,内核则调用请求队列处理函数来逐个处理请求队列。大致框架:1.分配gendisk结构,使用al...
嵌入式bootloader开发Tiny6410

嵌入式bootloader开发Tiny6410

在看尚观发布的嵌入式bootloader开发视频,听起来感觉还行,都基本会,但手里面只有友善之臂TIny6410开发板,还好这个开发板上已经有移植好的u-boot,而且SOC和视频上所说的差不多,一个是2410,一个是6410.只是后者是基于ARM11,而前者是比较老的ARM9.首先搭建开发环境,CentOS6.4x64版本,系统相对比较新minicom安装:yum -y install minicomminicom设置:minicom -s 去掉硬件控制...
Linux下ARM裸机开发-交叉工具链

Linux下ARM裸机开发-交叉工具链

初识linux下ARM的裸机开发全过程。现在总结如下:首先说明为什么要学习裸机开发,一方面bootloader的编写要用到裸机开发的知识,另一方面就是驱动的开发。一般情况下我们进行的系统上的开发。学习要点1、如何修改默认路径用户 root#vim /root/.bashrc添加:export PATH=$PATH:路径生效路径:source /root/.bashrc2、裸机开发流程:1编写裸机程序。2调试裸机程序。3生产二进制映像(编译、链接、格式转换)...
Linux内核态与用户态进程通信方法-用户上下文

Linux内核态与用户态进程通信方法-用户上下文

运行在用户上下文环境中的代码是可以阻塞的,这样,便可以使用消息队列和 UNIX 域套接字来实现内核态与用户态的通信。但这些方法的数据传输效率较低,Linux 内核提供 copy_from_user()/copy_to_user() 函数来实现内核态与用户态数据的拷贝,但这两个函数会引发阻塞,所以不能用在硬、软中断中。一般将这两个特殊拷贝函数用在类似于系统调用一类的函数中,此类函数在使用中往往"穿梭"于内核态与用户态。此类方法的工作原理路如图【1】。其中相关...
嵌入式Linux所需要做的交叉编译库文件

嵌入式Linux所需要做的交叉编译库文件

如果需要使用开源的库,比如X264在你的项目中,最后代码要移植到开发板上,那么需要用交叉编译链对库文件进行交叉编译。使架构一致,否则代码在开发板上无法运行。以libx264.a为例1.下载x264的压缩包,解压到文件夹中。2.进入文件夹进行配置./configure --enable-static --host=arm-linux --disable-asm需要配置哪些功能你需要用,哪些不需要用,比如用进程要加上--enable-pthread我默认的上面...
交叉编译中需要注意make的隐晦规则

交叉编译中需要注意make的隐晦规则

熟悉Linux的都知道,GUN 的make工具在生成可执行程序的过程中为我们提供了非常大的便利。不过要写出高效、简洁的Makefile可就不那么容易了(比如像我这样的菜鸟)。偶最近在进一步学习Makefile,就把遇到的问题以及自己的小小心得写出来,需要指正的大家尽管喷^_^不罗嗦了,先列出一个案例MakefileCXX :=/opt/buildroot-ralink-mt7620/bin/mipsel-linux-g++ROOTDIR := /home/...
Linux下驱动开发Tiny6410

Linux下驱动开发Tiny6410

内核:linux-2.6.38编译器:arm-linux-gcc4.5.1主机:VMware 7.0 + Fedora9-i386首先,由于笔者的NAND FLASH是MLC2的,通过u-boot不能启动,所以只好用友善提供的superboot工具,但能启动起来就OK了,现在还是菜鸟,等学习Linux够格了,再来解决这个问题。Tiny6410下裸机程序玩的已经差不多了,开始学习Linux下驱动程序,对这个一直怀有敬畏之心,内核70%~80%的代码都是由驱动...
module_init宏分析

module_init宏分析

一直在使用module_init和module_exit宏,但是对于这两个宏依然比较陌生,不知道它到底为程序员做了什么东西,今天闲来无事,就打开source insight分析了下它的具体实现,瞬间明白了,现在将笔记整理下。以经典的hello_world模块为例,在模块实现文件中,我们编写了如下语句:module_init(hello_init);那么它会被编译器展开成什么样子呢?在文件linux/init.h中定义了module_init.#define...
C++中函数指针和函数对象的区别与联系

C++中函数指针和函数对象的区别与联系

函数调用是C++中再频繁不过的一项操作了,函数可以直接调用,也可以通过函数指针来调用,也可以通过函数对象来间接调用,形式多样化。下面来看看函数指针和函数对象的区别。1.函数指针1)定义函数指针是指向函数的指针变量。在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址。函数指针主要有两个作用:用作调用函数和做函数的参数。2)声明方法数据类型标志符 (指针变量名) (形参列表);一般函数的声明为: int fun( int x ...
关于C/C++函数指针声明的理解

关于C/C++函数指针声明的理解

【前言】由于最近对函数指针的理解比较模糊,所有又重新学习了一把关于函数指针的知识,参考了很多书籍和网上的文章。现在本人进行一下分享和总结。本文的其实只是整理和总结别人现有的文章,作为备用参考文档。【正文】要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。我们先来看看下面的一个语句:( *( void(*)())0)();这是当计算机启动时,硬件将调用首地址为0位置的子例程。像这样的表达式恐怕...
有趣的Google面试题 - Harry Potter走矩阵

有趣的Google面试题 - Harry Potter走矩阵

MITBBS上看了一道有趣的G家面试题,题目如下:有一个2维矩阵,假设你是Harry Potter,在矩阵的左上角,你现在要走到右下角。矩阵中每个点都有一个权值,有正数也有负数,遇到正数表示你的生命力能增加那么多,遇到负数表示生命力减少那么多,在任何时刻如果你的生命力小于0,那么你就挂了。在一开始你有一定的初始生命力,现在问这个初始的生命力最少是多少,才能保证你能够找到一条路。走到右下角。每一步只能向右或者向下。其实这个题目看起来很像LeetCode里的M...
<< 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 >>