自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 ARM嵌入式系统为什么要做内存对齐

这里写自定义目录标题做嵌入式系统软件开发,经常在代码中看到各种各样的对齐,很多时候我们都是知其然不知其所以然,知道要做好各种对齐,但是不明白为什么要对齐,不对齐会有哪些后果,这篇文章大概总结了内存对齐的理由。##CPU体系结构和MMU的要求目前有一些RISC指令集的CPU不支持非对齐的内存变量访问操作,比如 MIPS/PowerPC/某些DSP等等,如果发生非对齐的内存访问,会产生una...

2019-10-17 17:11:36 1733 1

原创 嵌入式Linux/Android疑难杂症工作笔记

嵌入式Linux/Android疑难杂症工作笔记...

2019-08-05 23:33:07 1450 2

原创 面向对象地分析Linux内核设备驱动(3)——用面向对象思想分析vfb Framebuffer设备驱动

用面向对象思想分析vfb Framebuffer设备驱动- 内核版本 Linux Kernel 2.6.34, 与 Robert.Love的《Linux Kernel Development》(第三版)所讲述的内核版本一样- 源代码下载路径: https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2 1. vfb 驱动概述- vfb驱动的实现代码在drivers/video/

2017-02-12 18:07:59 2056 2

原创 面向对象地分析Linux内核设备驱动(2)——Linux内核设备模型与总线

Linux内核设备模型与总线- 内核版本 Linux Kernel 2.6.34, 与 Robert.Love的《Linux Kernel Development》(第三版)所讲述的内核版本一样- 源代码下载路径: https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2

2017-02-11 00:02:51 3046

原创 可在线OTA升级的嵌入式系统设计方案

什么是在线OTA升级- OTA是Over-the-Air的简写,空中下载技术的意思。- OTA在线升级在日常消费电子产品中很常见,比如手机,机顶盒等,通过网络,下载升级数据包,更新操作系统等底层固件进行系统更新升级。- 在线升级系统对于批量化消费电子产品来说是相当重要的。因为销售给客户的电子产品,其中的软件系统可能有潜在的bug或者功能为实现不齐全,需要在售后进一步完善更新系统。一般都是通过网络远程给用户进行系统更新。

2017-02-07 22:57:06 16039 4

原创 面向对象地分析Linux内核设备驱动(1):——Linux内核驱动中面向对象的基本规则和实现方法

Linux内核驱动中面向对象的基本规则和实现方法- 内核版本 Linux Kernel 2.6.34, 与 Robert.Love的《Linux Kernel Development》(第三版)所讲述的内核版本一样- 源代码下载路径: https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2

2017-02-07 00:08:41 5103 6

原创 Linux内核重点精要

- 内核版本 Linux Kernel 2.6.34, 与 Robert.Love的《Linux Kernel Development》(第三版)所讲述的内核版本一样- 源代码下载路径: https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2

2017-01-24 00:03:23 5098

原创 Buildroot构建指南——根文件系统(Rootfs)

Buildroot构建指南——根文件系统(Rootfs) Buildroot的Rootfs构建流程有一个大框架,有些部分是Buildroot系统做好的,有些细节需要自己来实现,Rootfs也是Buildroot中最为复杂的部分。

2016-08-29 23:38:56 16606 2

原创 Buildroot构建指南——Linux内核

Buildroot可以从Linux Kernel的官网(kernel.org)下载并编译内核,也可以使用用户自己的定制化内核。

2016-08-28 22:07:50 14208 2

原创 Buildroot构建指南——工具链

Linux系统的交叉编译工具链用来将源代码变成bin文件或者库文件的一个软件。一般大家默认工具链等于gcc或者arm-linux-gcc,但是实际上,gcc只是工具链的编译器部分,不是全部,制作一个工具链的原材料,除了gcc,还需要linux内核,libc库等一系列的软件包。所谓万事开头难,如何在Buildroot中使用自己的交叉编译工具链则是第一道难关。Buildroot支持从零开始用原材料软件包自动构造工具链,也支持直接使用第三方制作好的工具链。

2016-08-28 15:50:38 16207 4

原创 Buildroot构建指南--快速上手与实用技巧

Buildroot官方全英文使用手册的链接是https://buildroot.org/downloads/manual/manual.html,需要知道每一个细节的朋友,可以仔细查阅,这篇文章只是我自己从中提炼出来的一下快速上手的技巧。如何在现有项目加入自己的APPBuildroot从零开始构建的过程还是很复杂的,以后的文章会一步步介绍。我们先来看看如何在现有项目中加入一个自己的应用的构建方法,快速上手。实际上,快速添加应用包的方法,在官方网站也有一份英文文档: https://buildroot.

2016-08-27 16:20:59 29633 12

原创 Buildroot构建指南--Overview

使用Buildroot,让嵌入式Linux系统构建更加便捷。本文以Buildroot-2016.05的版本为基础来讲解,不同版本之间有细节差异,需要根据读者使用的版本自行调整。Buildroot是什么Buildroot是Linux平台上一个开源的嵌入式Linux系统自动构建框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(

2016-08-23 23:55:14 16237

原创 算法备忘录——查找

数据一旦被有规律得组织起来,从中查找出所需元素的效率将会大大提高。查找算法准确的说,应该是数据的组织方法与查找方法的结合。没有组织规律的数据,我们只能用直观的暴力方法,一个一个拿出来对比,从而筛选出待查找的元素。而一旦数据变得有组织有规律,查找就变得轻而易举了。

2016-08-21 22:41:03 4071 1

原创 算法备忘录——排序

排序是为了让查找更有效率。一组无序的数字,字符串等元素,要从中找出某个特殊的元素,是一件很繁琐的事情,我们不得不一个一个列举比较。而面对一组有序的元素,要从中找到某个特殊元素A,或者判断某元素B是否存在,则效率要高很多。前辈们排序算法研究已久,有些用直觉就能分析出来,即所谓基础排序,有些无法用直觉看出,还需要一些分析研究,即所谓高级排序。以下表格大致罗列一下主流的排序算法的特点。

2016-04-04 08:25:10 5071

原创 算法备忘录——基础数据结构与复杂度

1.数据的基本组织方式2.背包、链表、队列实现方式对比3.时间复杂度与空间复杂度

2016-04-04 08:20:16 2163

原创 嵌入式Linux系统的电子书阅读器项目4——Input Event System

类似其它几个子系统,输入事件子系统也是采用一个核心层+可装载组件的模式,并且将底层实际输入设备(如 touchscreen)所产生的原始数据(raw input data)封装层格式化的输入事件(input event) 提供给Book Engine访问。这样就隐藏了事件输入设备的复杂性与多样性。作为一个学习型项目,在输入事件系统的核心函数采用可配置的多种实现方法,可让爱好者学习比较各种方法的优劣。

2016-02-11 17:37:51 1419

原创 嵌入式Linux系统的电子书阅读器项目3——Encode & Font System

1.字符编码(Encode)与字体(Font)显示概述如图1,大家在阅读器界面看到的不同字体和尺寸的"好"字(左边宋体小二,右边楷体小二),在电子书txt格式文档中的原始数据是如何存储的呢?

2016-02-08 22:57:41 1628

原创 嵌入式Linux系统的电子书阅读器项目2——Display System

1.显示系统(Display system) 架构 显示系统由核心层与各个组件(fb、crt等)部分,其架构图如图1所示。每个组件都是可装载卸载的,即系统不需要实现所有组件,仅需要激活一个组件就能使用该组件在组件指定的特性和范围中运行,本项目其它子系统都是采用这种可装载卸载组件的方法架构和设计的。

2016-02-08 12:58:02 2356

原创 嵌入式Linux系统的电子书阅读器项目1——Overview

摘要:本项目是参考@韦东山的嵌入式Linux jz2440平台的电子书框架,使用S5PV210 SOC处理器,Smart210开发板,基于Linux kernel 3.0.8做的移植与改进,算是一个学习嵌入式C语言框架化编程的练手项目。 项目源代码的github的repository链接如下:[email protected]:zczjx/dgt_pht.git , 网页版为: 电子书项目-git仓库,电子书项目在dgt_book branch。clone 这个项目的爱好者,需要 git checkout

2015-12-12 10:24:21 4348 2

原创 第一篇博客,Hello World

Hello World!这是我的CSDN第一篇博客,掐指一算,从学单片机开始,学习开发嵌入式软件已经5年了。终于找到一个小窝能够和大家一起分享交流技术。今天是一个美好的开始,你好,世界。

2015-12-11 18:54:14 1938 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除