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

首页 / 操作系统 / Linux

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...
Linux驱动的开发与移值——分析Tiny210的声卡驱动模块

Linux驱动的开发与移值——分析Tiny210的声卡驱动模块

目的:接着上一篇文章《S3C6410 LCD驱动的分析过程——定位相关源代码》地址:http://www.linuxidc.com/Linux/2012-02/54665.htm ,再写一篇关于分析内核驱动的过程的文章以便加深自己对这方面的印象。背景:手头有友善之臂的tiny210和tiny6410。我留意到tiny210的核心板比6410多了一个排针座,但是另外两个针座的位置都是一样的。于是我在想友善之臂的工程师,会不会把把tin...
<< 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 >>