MMC/SD/SDIO介绍

作者:wowo 发布于:2016-12-25 21:52 分类:基础技术

熟悉Linux kernel的人都知道,kernel使用MMC subsystem统一管理MMC、SD、SDIO等设备,为什么呢?到底什么是MMC?SD和SDIO又是什么?为什么可以用MMC统称呢?

在分析Linux kernel的MMC subsystem之前,有必要先介绍一些概念,以便对MMC/SD/SDIO有一个大致的了解,这就是本文的目的。

阅读全文>>

标签: emmc mmc sd sdio

评论(3) 浏览(2247)

基于Hikey的"Boot from USB"调试

作者:wowo 发布于:2016-12-20 22:36 分类:X Project

话说在半年前,乐美客送给蜗窝几块Hikey(乐美客版)开发板[1],不过由于太忙,就一直把它们放在角落里思考人生,因此甚是愧疚。这几天,闲来无事,翻了下Hikey的资料,觉得挺有意思,就想花点时间让“X Project”在这个板子上跑起来。当然,按照“规矩”,先从“【任务1】启动过程-Boot from USB”做起,记录如下。

阅读全文>>

标签: USB boot u-boot spl hikey Hi6220V100

评论(0) 浏览(1191)

Linux serial framework(1)_概述

作者:wowo 发布于:2016-12-12 22:04 分类:通信类协议

串口设备(serial or uart,后面不再区分)是TTY设备的一种,Linux kernel为了方便串口驱动的开发,在TTY framework的基础上,封装了一层串口框架(serial framework)。该框架尽可能的屏蔽了TTY有关的技术细节(比较难懂),驱动工程师在编写串口驱动的时候,只需要把精力放在串口以及串口控制器本身即可。

本文将通过对serial framework的简单分析,理解上面的概念,并掌握基于该框架编写串口驱动的方法和步骤。

阅读全文>>

标签: Linux driver framework serial 框架 串口

评论(5) 浏览(1275)

快讯:蓝牙5.0发布(新特性速览)

作者:wowo 发布于:2016-12-8 11:05 分类:蓝牙

2016年12月6日,蓝牙SIG发布了5.0版本的核心规范,该规范从距离、速度等多个方面,对BLE进行了增强,蓝牙官网的总结如下[1]

With the launch of Bluetooth 5, Bluetooth® technology continues to evolve to meet the needs of the industry as the global wireless standard for simple, secure connectivity. With 4x range, 2x speed and 8x broadcasting message capacity, the enhancements of Bluetooth 5 focus on increasing the functionality of Bluetooth for the IoT. These features, along with improved interoperability and coexistence with other wireless technologies, continue to advance the IoT experience by enabling simple and effortless interactions across the vast range of connected devices.

相比蓝牙4.2,新增的特性包括[3]

Several new features are introduced in the Bluetooth Core Specification 5.0
Release. The major areas of improvement are:
• Slot Availability Mask (SAM)
• 2 Msym/s PHY for LE
• LE Long Range
• High Duty Cycle Non-Connectable Advertising
• LE Advertising Extensions
• LE Channel Selection Algorithm #2

下面对一些比较有意思的做个简单的介绍(后续有时间会做比较细致的分析)。

阅读全文>>

标签: 蓝牙 Bluetooth 5.0 2M Extensions

评论(10) 浏览(2611)

X-021-ROOTFS-基于busybox的最简rootfs的制作

作者:wowo 发布于:2016-12-5 22:50 分类:X Project

在前一篇文章[1]中,我们编写并成功运行了一个简单的init程序。于是,“【任务4】启动Linux kernel到命令行”就成了一个水到渠成的事情。当然,只有一个简单的程序还不够,我们要来点实在的,一个真正的根文件系统。

Linux系统中制作根文件系统的方法有很多种,基于一个个package一点点编译、利用buildroot、利用busybox、等等,本文将以嵌入式系统中普遍使用的busybox为例,介绍制作一个简单的rootfs的方法。

阅读全文>>

标签: rootfs busybox inittab rcS

评论(0) 浏览(1058)

X-020-ROOTFS-initramfs的制作和测试

作者:wowo 发布于:2016-12-3 11:08 分类:X Project

我们在“X-015-KERNEL-ARM generic timer driver的移植”中移植完ARM generic timer之后,Linux的启动已经走完了内核空间的旅程,即将冲破kernel走向用户空间,有“诗”为证:

[    0.142156] ---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.

意思很明显,kernel找不到可执行的init文件,无法继续下去了。还好,基本的串口驱动[1]开发完毕之后,我们可以把魔抓伸向用户空间了。牵涉到用户空间,麻烦就大了,块设备、文件系统、rootfs等等,不是三言两语就能搞定的。不过没关系,我们可以从最简单的ramdisk入手。

因此,本文将以initramfs为例,介绍kernel把CPU的控制权交给用户空间程序的过程。与此同时,本文也是串口驱动[1]和GIC驱动[2]的测试用例(这两个驱动移植完成后,一直没有测试,机会终于来了)。

阅读全文>>

标签: GIC initramfs randisk elf rootfs

评论(0) 浏览(753)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog