- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 Android Studio使用介绍
1、介绍Android Studio 是基于 IntelliJ IDEA 的官方 Android 应用开发集成开发环境 (IDE)。 除了 IntelliJ 强大的代码编辑器和开发者工具,Android Studio 提供了更多可提高 Android 应用构建效率的功能,例如:基于 Gradle 的灵活构建系统快速且功能丰富的模拟器可针对所有 Android 设备进行开发的统一环境Instant ...
2018-03-21 10:41:11 541
原创 CSDN博客中使用目录
当博文比较长时,在博文开头处添加目录会便于阅读。CSDN博客自带添加目录功能,只需选择要设置为标题的文字,然后通过工具栏的“段落标签”工具进行设置,如下图所示。现在来测试一下:标题1 CSDN博客目录测试标题2 CSDN博客目录测试标题3 CSDN博客目录测试博客发表后,果然在版权声明下边生成了目录,如下图所示。...
2018-03-20 14:15:54 1407 1
原创 Android系统源码下载及编译流程
Android系统源码下载及编译流程1.准备工作2.Android源码下载3.Android编译环境搭建4.Android系统编译5.Android内核模块编译1.准备工作Android 由四个层组成: Linux 内核(c/c++)本地用户空间native (c/c++)应用程序框架层应用程序层(java) 老师说她一般在kernel、native、framework层进行代码安全加固。选择An...
2018-03-20 13:58:51 367
原创 Android历史与系统构架简介
一:Android发展史 在2012年,Android手机的全球销量为4.815部,占据了全球智能手机68.8%的市场份额。在2013年,这个数字上升到了7.812亿、78.9%,这是一个相当惊人的数字。 讲到Android系统的历史,首先我们就要先来说说Android系统这个名字的来历。Android这一次最先出现在法国作家利尔 亚当在1886年发飙的科幻小说《未...
2018-03-19 11:35:20 270
原创 关于爬山算法、模拟退火算法和遗传算法区别
这三种算法都是用来求解函数“最大值”问题的算法,我们可以把函数曲线理解成一个一个山峰和山谷组成的山脉(如图片所示)。那么我们可以设想所得到的每一个解就是一只青蛙,我们希望它们不断的向着更高处跳去,直到跳到最高的山峰(尽管青蛙本身不见得愿意那么做)。所以求最大值的过程就转化成一个“青蛙跳”的过程。下面介绍介绍“青蛙跳”的几种方式。 1. 爬山算法(最速上升爬山法):
2015-02-16 15:36:41 9238 1
原创 Boa服务器移植
Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。下面给大家介绍一下Boa服务器移植的具体操作步骤,希望能够有帮助。环境 主机:ubuntu8.10
2015-01-23 11:12:12 321
原创 什么是交叉编译
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行
2015-01-23 11:06:29 382
原创 在nand flash上实现JFFS2根文件文件系统
JFFS2是Flash上应用最广的一个日志结构文件系统。它提供的垃圾回收机制,不需要马上对擦写越界的块进行擦写,而只需要将其设置一个标志,标明为脏块,当可用的块数不足时,垃圾回收机制才开始回收这些节点。同时,由于JFFS2基于日志结构,在意外掉电后仍然可以保持数据的完整性,而不会丢失数据。本文阐述如何在nand flash上实现JFFS2根文件文件系统。实验环境是:FS2410开发平台及u
2015-01-23 11:03:57 414
转载 嵌入式linux应用开发之:初识Qt
随着linux系统及基于linux系统的嵌入式产品的蓬勃发展,Qt、Qt/Embedded、Qtopia的字样越来频繁的出现在我们面前。QTQt是一个多平台的C++图形用户界面应用程序框架,由挪威 TrollTech 公司出品。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自1996年Qt进入商业领域开
2015-01-20 10:46:29 445
原创 嵌入式Linux驱动程序开发要点
在Linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制输入/输出设备的驱动程序与其他操作系统软件分离开来。字符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般紧接着发生。块设备则不然,它利用一块系统内存作为缓冲区,若用户进程对设备的请求能满足用户的要求,就返回请求的数据;否则,就调用请求函数来进行实际的I/O操作。块设备主
2015-01-20 09:53:22 667
原创 __asm__ __volatile__内嵌汇编用法简述
__asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。带有C/C++表达式的内联汇编格式为:__asm__ __volatile__("Instruction List" : Output : Input : Clobber/Modify);其中每项的概念
2015-01-20 09:52:27 437
转载 使用cross-3.3.2编译器的问题
和Windows下的开发不同,嵌入式Linux开发显得有些复杂。其实并不是复杂,而是我们面前的新知识有点多:Linux操作系统、交叉编译器、库、大小端、软浮点...前几天用cross-3.3.2编译器编译Linux-2.6.14内核,就出现了链接错误。对于初学者,这类非语法类错误是非常难查的,所以我只能建议大家换编译器版本。比如这个cross-3.3.2编译器在编译u-boot-1.3.1
2015-01-20 09:39:54 340
转载 内核栈的使用
今天和一个朋友聊天,朋友说在编写驱动时遇到一个怪异的问题。他在内核中使用了一个深度函数调用(多层嵌套的函数),但没有实现预定的效果,但如果把嵌套去掉,函数就没问题了。当时我也没有多想,就回答可能是编译器的问题。回来后头脑中又浮现出这个问题,突然想到内核栈,觉得这个问题的原因应该出在内核栈上。下面简要介绍下内核的知识。用户空间运行的程序可以从用户空间的栈上分配大量的空间来存放变量或数组、大的
2015-01-20 09:38:53 343
转载 ARM linux系统调用的实现原理
大家都知道linux的应用程序要想访问内核必须使用系统调用从而实现从usr模式转到svc模式。下面咱们看看它的实现过程。系统调用是os操作系统提供的服务,用户程序通过各种系统调用,来引用内核提供的各种服务,系统调用的执行让用户程序陷入内核,该陷入动作由swi软中断完成。at91rm9200处理器对应的linux2.4.19内核系统调用对应的软中断定义如下:#if defined
2015-01-20 09:38:09 339
转载 利用udev、sys动态创建linux设备结点
在Linux2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢?下面通过一个实例,说明udev、sys动态创建设备结点的方法。注意代码中红色的部分是为了实现动态创建设备结点添加的。 #include #in
2015-01-20 09:37:07 297
转载 Linux字符设备驱动程序的编写框架
一、Linux device driver 的概念系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能:1、对设备初始化和释放;2、把数据从内核传送到硬件和
2015-01-19 15:21:33 459
转载 NandFlash系列之二:S3C2410读写Nand Flash分析
一、结构分析S3C2410处理器集成了8位NandFlash控制器。目前市场上常见的8位NandFlash有三星公司的k9f1208、k9f1g08、k9f2g08等。k9f1208、k9f1g08、k9f2g08的数据页大小分别为512Byte、2kByte、2kByte。它们在寻址方式上有一定差异,所以程序代码并不通用。本文以S3C2410处理器和k9f1208系统为例,讲述NandF
2015-01-19 15:17:09 306
转载 NandFlash系列之一:NorFlash与NandFlash对比
FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash,下面我们从多个角度来对比介绍一下。在实际开发中,设计者可以根据产品需求来进行闪存的合理选择。1、接口对比NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。NorFlash的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接
2015-01-19 15:16:46 388
转载 嵌入式Linux文件系统及其存储机制分析
嵌入式系统与通用PC机不同,一般没有硬盘这样的存储设备而是使用Flash闪存芯片、小型闪存卡等专为嵌入式系统设计的存储装置,本文分析了嵌入式系统中常用的存储设备及其管理机制,介绍了常用的基于FLASH的文件系统类型。1.嵌入式系统存储设备及其管理机制分析构建适用于嵌入式系统的Linux文件系统,必然会涉及到两个关键点,一是文件系统类型的选择,它关系到文件系统的读写性能、尺寸大小;另
2014-12-24 11:43:52 391
转载 Linux下C语言编程概述
Linux下的C语言程序设计与在其他环境中的C程序设计一样,主要涉及到编辑器、编译链接器、调试器及项目管理工具。(1)编辑器 Linux下的编辑器就如Windows下的word、记事本等一样,完成对所录入文字的编辑功能。Linux中最常用的编辑器有Vi(Vim)和Emacs,它们功能强大,使用方便,广受编程爱好者的喜爱。(2)编译链接器 编译
2014-12-14 15:59:13 377
转载 ARM嵌入式软件编程杂谈
ARM 系列处理器是 RISC (Reducded Instruction Set Computing)处理器。很多基于ARM的高效代码的程序设计策略都源于RISC 处理器。和很多 RISC 处理器一样,ARM 系列处理器的内存访问,也要求数据对齐,即存取“字(Word)”数据时要求四字节对齐,地址的bits[1:0]==0b00;存取“半字(Halfwords)”时要求
2014-12-14 15:49:47 502
转载 ARM、DSP、FPGA的技术特点和区别
在嵌入式开发领域,ARM是一款非常受欢迎的微处理器,其市场覆盖率极高,DSP和FPGA则是作为嵌入式开发的协处理器,协助微处理器更好的实现产品功能。那三者的技术特点以及区别是什么呢?下文就此问题略做了总结。 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。
2014-11-29 18:11:23 513
arm linux gcc 4 4 3 用于linux
2015-01-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人