u-boot启动流程分析(1)_平台相关部分

作者:wowo 发布于:2016-5-19 22:38 分类:u-boot分析

本文将结合u-boot的“board—>machine—>arch—>cpu”框架,介绍u-boot中平台相关部分的启动流程。并通过对启动流程的简单分析,掌握u-boot移植的基本方法。

注1:本文所使用的u-boot版本,是2016/4/23从u-boot官网(git://git.denx.de/u-boot.git)导入的一个快照,具体可参考“https://github.com/wowotechX/u-boot”。

注2:为了方便,本文将“平台相关部分的启动流程”,定义为从u-boot启动开始,到board有关的C代码被执行为止。后续的部分,会在下一篇文章中分析。


阅读全文>>

标签: arm64 ARM boot u-boot spl

评论(38) 浏览(61638)

玩转BLE(2)_使用bluepy扫描BLE的广播数据

作者:wowo 发布于:2016-5-19 15:17 分类:蓝牙

在linux平台下,bluez是一个很不错的软件,提供了很多基于命令行的测试工具,如hciconfig、hcitool、hcidump、bluetoothctl等。利用这些工具,我们可以方便的测试、demo各种蓝牙功能。例如,在“玩转BLE(1)_Eddystone beacon”中,我们利用hcitool命令,演示了将手机变成一个Beacon设备的神奇效果。

Beacon的演示,从本质上看,是BLE Advertising(广播)功能的测试和验证。自然而然的,我们会好奇:怎么接收这些广播数据呢(其实就是BLE Scanning功能)?这就是本文要介绍的内容。

虽然hcitool(以及后来的bluetoothctl)可以进行简单的LE scan操作,但返回的结果仅包括简单的地址和名称,显然无法满足我们的需求(要知道,BLE的广播数据可能包含其它内容哦,如我们的Beacon演示)。怎么办呢?不着急,强大的python出马了。

阅读全文>>

标签: 蓝牙 Bluetooth BLE scan bluepy advertising

评论(15) 浏览(40310)

ARMv8之memory model

作者:linuxer 发布于:2016-5-18 12:09 分类:ARMv8A Arch

从阅读ARMv8手册的第一天起,我就饱受memory order、memory barrier、coherent、consistency等概念的残害,各种痛苦,各种迷茫,各种试图放弃,各种欲罢不能……,现在,终于收拾心情,再 次出发,希望这次能把近期关于ARMv8上的memory model相关的知识点整理出来,让自己更清楚一些,也顺便希望能够和大家一起探讨。

本文主要关注shared-memory system,其他的系统不在本文的考虑范围。

阅读全文>>

标签: Model ARMv8 sequential consistency relaxed

评论(7) 浏览(19600)

ARMv8之Atomicity

作者:linuxer 发布于:2016-5-13 19:18 分类:ARMv8A Arch

本文主要解析ARMv8手册中的Atomicity这个概念。首先给出为何定义这样的概念,定义这个概念的作用为何?然后介绍Atomicity相关的概 念,很多时候我们引用了手册的原文,但是由于这些原文象天书一样难懂(可读性比较差),因此,我们使用程序员可理解的一些语言来描述这些概念。最后给出 ARMv8上,各种内存操作指令,针对各种memory type,其Atomicity的特性为何。

阅读全文>>

标签: Coherent Single-copy atomicity Multi-copy

评论(8) 浏览(19817)

X-002-HW-S900芯片boot from USB有关的硬件描述

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

本文将以S900芯片[1]为例,介绍和“【任务1】启动过程-Boot from USB有关的硬件行为。其它人可以借鉴该文档,描述自己所使用平台的硬件特性,以完成该任务。

为了方便操作,这里以“填空题”的形式,给出我们关心的key point,只要我们能够把这些填空题完成,就可以放心的去coding了。题目如下:

1)CPU上电后,从哪种设备(                )的哪个地址(                )开始执行。

2)用(                )方式,可以让CPU进入USB download(或者UART download)模式。

3)进入USB download之后,设备使用哪个USB接口(        )和主机通信。

4)进入download模式后,哪一段地址范围(通常为SRAM)可以用来执行程序:(                )~(                ),size有多大(                )

5)用什么协议(                )可以通过USB将bin文件上传到指定的地址。

6)用什么协议(                )可以让CPU跳转到到指定地址继续执行。

注1:Boot这一块的资料,国内的IC设计厂商给出的资料都是语焉不详,从哪里得到有用的信息,是一个相当困难的事情。大家只能各显神通了。

阅读全文>>

标签: USB s900 hw boot

评论(18) 浏览(15325)

玩转BLE(1)_Eddystone beacon

作者:wowo 发布于:2016-4-29 22:50 分类:蓝牙

你相信两条命令就可以把自己的破手机变成一个Beacon节点吗?不相信的话就接着往下看吧。

通过前几篇“蓝牙协议分析”相关的文章,特别是“蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍”,相信大家对BLE协议栈已经有了基本的认识。在继续后续的分析之前,我们有必要换个视角,从应用的角度,以“玩”的心态,学习并理解BLE的工作原理,并作为后续分析文章的引子和入口。这就是撰写“玩转BLE”系列文章的缘由。

之所以起名为“玩转”,是因为我不会在这些文章中涉及任何的技术细节,仅仅是描述一些操作步骤,普及一些蓝牙BLE有关的使用场景。

另外,由于Linux平台使用的蓝牙协议栈是Bluez[1],Bluez协议栈提供了很多方便、灵活又强大的测试工具(如hcitool、gatttool等)。因此,简单起见,在写“玩转”系列文章的时候,我会尽可能的使用这些测试工具,而不引入复杂的编程手段。从另一个角度看,“玩转”系列文章也是BLE测试的一些步骤总结,方便自己和他人查阅。

本文是“玩转”系列文章的第一篇,以简单的两条hcitool命令,将自己的手机或者开发板变成一个BLE Beacon节点,进而体会BLE技术的简洁和神奇。

阅读全文>>

标签: BLE eddystone beacon hcitool

评论(16) 浏览(35533)

X-001-PRE-git介绍及操作记录

作者:wowo 发布于:2016-4-26 22:27 分类:X Project

git是一个高效、实用的版本管理工具,但并不是一个容易掌握的工具,刚接触的时候,总有一种云里雾里的感觉。因此本文将结合“X Project”的开发过程,记录git的操作记录,从实战的角度,理解并学习git。

注1:有关“X Project”的介绍和讨论,可参考“http://www.wowotech.net/forum/viewtopic.php?id=2”。

阅读全文>>

标签: git remote push origin commit

评论(17) 浏览(16001)

X-000-PRE-开发环境搭建

作者:wowo 发布于:2016-4-23 20:20 分类:X Project

本文是“X Project”的第一篇文章,介绍怎么从零开始搭建“X Project”的开发环境(同样适用于其它的嵌入式Linux开发)。通过该过程,可以使读者对嵌入式Linux开发的基本流程有一个简单的了解,以达到“知其然、知其所以然”的目的。

注1:有关“X Project”的介绍和讨论,可参考“http://www.wowotech.net/forum/viewtopic.php?id=2”。

阅读全文>>

标签: x project git gerrit build environment

评论(31) 浏览(17503)

使用pxe方式安装系统

作者:wangsuyu_1 发布于:2016-4-23 13:25 分类:Linux应用技巧

前两天由于工作的需要,研究了下pxe安装系统的方式。

虽然网上资料也蛮全的了,但是对于我这样对pxe,tftp,dhcp等完全不懂的人来说,就是按部就班地做,也是错误百出,花了好久才找到方法。

所以就记录下具体的操作步骤和一些细节性的问题。

阅读全文>>

标签: pxe 系统安装

评论(0) 浏览(15823)

Common Clock Framework系统结构

作者:linuxer 发布于:2016-4-21 19:23 分类:电源管理子系统

之前,wowo同学已经发表了关于CCF(Common Clock Framework)的三份文档,相信大家对CCF有一定的了解了,本文就是在阅读那三份文档的基础上,针对Linux 4.4.6内核的内核代码实现,记录自己对CCF的理解,并对CCF进行系统结构层面的归纳和整理。

本文内容包括三个部分,第二章给出了整个CCF相关的block diagram图,随后在第三章对各个模块进行功能层面的描述。最后,第四章给出了各个block之间的接口描述。

另外,在阅读CCF代码的过程中,我准备用两份文档来分享我对CCF的理解。这一份是系统结构,另外一份是逻辑解析。

阅读全文>>

标签: framework clock common

评论(11) 浏览(26402)

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