X-005-UBOOT-device tree移植(Bubblegum-96平台)

作者:wowo 发布于:2016-6-29 22:14 分类:X Project

我们在“X-004-UBOOT-串口驱动移植(Bubblegum-96平台)”中,简单介绍了u-boot中serial driver的移植过程。由于serial driver是u-boot移植中的第一个driver,为了方便debug,并没有引入device tree。在serial driver ready之后,基本的console功能已经okay,基于此,我们可以着手增加device tree功能。

很久以前,我们在博客上写了三篇device tree的分析文章(Device Tree(一):背景介绍Device Tree(二):基本概念Device Tree(三):代码分析),这些文章的目的是介绍device tree背后的思想、原理、实现方法、等等,偏重于理论,相信给大家制造了不小的“心里压力”。

因此,本文将以“X Project”为契机,从实践的角度,以使用者的视角,介绍device tree使用方法。相信通过本文,大家对device tree的理解会上一个新台阶,达到化繁为简、随心所欲的境地。

阅读全文>>

标签: dts u-boot porting device_tree dtc dtb

评论(8) 浏览(14988)

串口通信技术浅析

作者:wowo 发布于:2016-6-24 22:50 分类:基础技术

最熟悉的陌生人!用这句话形容“串口”是再贴切不过的了。

对嵌入式工程师来说,“串口”是一个再熟悉不过的模块,熟悉到像喝水一样自然。与此同时,有关串口的很多细节,却被渐渐地模糊和忽略,例如:

我们经常挂在嘴边的serial、UART、RS232等概念,究竟是怎么回事?它们之间有何联系?有何区别?

串口的波特率(baud rate)是怎么定义和计算的?比特率(bit rate)又是怎么回事?二者的关系又是怎样?

为什么波特率有误差?通信过程中所容许的误差范围是多少?

本文将对上述问题,进行简单的总结和归纳,以便指导有关的开发工作。

阅读全文>>

标签: uart serial baud rate

评论(1) 浏览(16213)

X-004-UBOOT-串口驱动移植(Bubblegum-96平台)

作者:wowo 发布于:2016-6-18 9:56 分类:X Project

话说现在的u-boot长得和linux kernel越来越像,设备模型(driver model)、device tree、各种framework(gpio、pinctrl、clock、i2c、regulator、等等),各种概念,均和linux kernel保持一致。这对工程师(特别是linux驱动工程师)来说,是一个利好,因为熟悉了linux kernel相关子系统之后,去搞u-boot基本上就毫无压力了。

不过,对“蜗窝”来说,压力(或者说矛盾)就来了:要不要为u-boot中相关的子系统写分析文章?写吧,实在提不起兴趣,毕竟和kernel类似,我们的重点又在kernel分析上。不写吧,不符合我们的风格啊!

最后,鉴于时间的压力,只能选一个折衷方案:

对于“X Project” u-boot移植过程所涉及的driver模块,只写一篇移植说明,至于其它的,只能战略性放弃(当然,如果有同学有兴趣帮忙补上,我们还是很欢迎的)。

本文是这类文章的第一篇,介绍串口驱动(serial driver)的移植过程。因为u-boot跑起来之后,第一件事就是要把串口输出(console)准备好,以便后续模块的debug。

阅读全文>>

标签: uart x project u-boot uboot porting serial

评论(10) 浏览(13861)

DRAM 原理 2 :DRAM Memory Organization

作者:codingbelief 发布于:2016-6-14 22:43 分类:基础技术

在 DRAM Storage Cell 章节中,介绍了单个 Cell 的结构。在本章节中,将介绍 DRAM 中 Cells 的组织方式。

阅读全文>>

标签: SDRAM dram

评论(9) 浏览(37667)

通过点亮LED的方法调试嵌入式代码

作者:wowo 发布于:2016-6-12 22:10 分类:软件开发

在软件开发的过程中,debug(调试)是一个很重要的事情,因为没有百分之百正确的代码,一旦结果不符合预期,我们需要知道问题出在哪里了。

在PC环境下开发应用程序,我们不需要太操心,因为有各式各样的模拟器、调试器可供使用,我们可以追踪到每一行代码的执行过程和执行结果,找出问题只是时间问题而已。但在嵌入式环境下,就有些麻烦了,能用的手段,无外乎两种:

1)使用硬件仿真器定位问题。

2)使用日志输出定位问题。

对嵌入式工程师(特别是linux工程师)而言,鉴于使用硬件仿真器的诸多不便(成本高,无法保证人手一个;硬件连接复杂,需要预留特定接口;使用不方便;等等),日志输出几乎成为必备且唯一的debug手段。但是,总会有例外:

系统刚刚启动,在日志输出的通道(通常是UART接口)ready之前,怎么debug?

在不得不使用仿真器之前,我们还有一个简单的方法,就是点LED灯,本文将结合“X Project”“【任务2】启动到u-boot command line”实现的过程,对这个方法进行简单的介绍和总结。

阅读全文>>

标签: debug LED

评论(6) 浏览(10890)

DRAM 原理 1 :DRAM Storage Cell

作者:codingbelief 发布于:2016-6-8 16:41 分类:基础技术

接下了 X Project SDRAM 的任务,趁机整理下 DRAM、SDRAM、DDR SDRAM、LPDDR 等相关的内容。

这是第一篇,简单介绍下 DRAM Storage Cell 的相关内容。

阅读全文>>

标签: SDRAM dram

评论(13) 浏览(66550)

u-boot启动流程分析(2)_板级(board)部分

作者:wowo 发布于:2016-6-7 22:06 分类:u-boot分析

书接上文(u-boot启动流程分析(1)_平台相关部分),本文介绍u-boot启动流程中和具体版型(board)有关的部分,也即board_init_f/board_init_r所代表的、board有关初始化过程。该过程将持续u-boot的整个生命周期,直到main_loop(即传说中的命令行)。

注1:由于u-boot后初始化过程,基本上涉及到了所有的软件模块,因此本文不能一一分析,基本原则就是捡看着顺眼的、熟的下手了~。

阅读全文>>

标签: uboot board init relocate relocation dram

评论(26) 浏览(57466)

蓝牙协议分析(6)_BLE地址类型

作者:wowo 发布于:2016-6-7 11:40 分类:蓝牙

也许关注BLE的同学都注意到了,BLE设备有多种类型的设备地址,如Public Device Address、Random Device Address、Static Device Address、Private Device Address等等。如果不了解内情,大家肯定会被它们绕晕。不过存在即合理,这样看似奇怪的设计,实际上反映了BLE的设计思路以及所针对的应用场景。让我们通过本文一窥究竟。

阅读全文>>

标签: 蓝牙 BLE public random static private resolvable address

评论(46) 浏览(72227)

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