2015年6月17日

ARM Linux 内核 panic 之cache 一致性 ——Cortex-A9多核cache和TLB一致性广播

摘要: Cortex-A9的CPU可以接收和执行一致性广播操作,当其使能并处于SMP模式时。本文以内核的panic为例,在给出内核panic后的真正原因后,讨论Cortex-A9多核的cache和TLB的一致性广播,实际使用中应该怎么设置。 阅读全文

posted @ 2015-06-17 00:16 wangyw 阅读(3148) 评论(0) 推荐(0)

2015年6月8日

ARM Linux 内核 panic 之cache 一致性 ——cci-400 cache一致互联

摘要: CCI-400 集合了互联和一致性功能,有 2 个 ACE slave 接口和 3 个 ACE-Lite slave 接口,有 3 个 AXI master 接口。 2 个 ACE slave 接口可以相互 snoop 对方,ACE-Lite slave 接口可以 snoop 这 2 个 ACE slave 接口。 本文首先介绍cci-400相关概念,然后以内核的panic为引子,最后给出导致内核panic的真正原因。 阅读全文

posted @ 2015-06-08 20:48 wangyw 阅读(8322) 评论(0) 推荐(1)

2015年6月4日

ARM Linux 大小核切换 ——cortex-A7 big.LITTLE 大小核 切换代码分析

摘要: 8核CPU或者是更多核的处理器,这些CPU有可能不完全对称。有的是4个A15和4个A7,或者是4个A57和4个A53,甚至像海思麒麟935处理器(4核A53 2.2 GHz + 4核A53 1.5 GHz),这8个核的频率可能不一样,则使用过程中需要大小核切换(频率高的是大核,频率低的是小核)。 本文以ARM cortex-A7为例,分析大小核切换的代码,着重于分析实现切换的代码,对于为什么要这样切换、以及什么时候切换,不做过多探讨。 阅读全文

posted @ 2015-06-04 20:47 wangyw 阅读(4417) 评论(0) 推荐(0)

2015年5月26日

ARM linux电源管理——Cortex A系列CPU(32位)睡眠和唤醒的底层汇编实现

摘要: 移动设备,为了功耗考虑,对电源管理部分要求严格,Android系统结合Linux内核,对此有非常漂亮的方案,可以让设备随时睡眠、即刻唤醒。 本文结合ARM Cortex A系列CPU(32位)睡眠和唤醒的流程,主要分析平台相关的CPU下电和上电过程,以及ARM底层汇编代码实现。 阅读全文

posted @ 2015-05-26 21:34 wangyw 阅读(3006) 评论(0) 推荐(0)

2015年5月25日

回忆我的大学——大学图书馆借书记录

摘要: 近日跟大学同学老罗一晤,勾起了我屡屡情思,特发此文,回忆我的大学。 阅读全文

posted @ 2015-05-25 19:46 wangyw 阅读(689) 评论(0) 推荐(0)

2015年4月18日

在路上●我的年轻●勇往直前●匆匆十年

摘要: 人生是一个丰富、而又漫长的过程,不同的阶段需要完成不同的目标,由于受到时代、环境、地域、甚至人为因素的影响,可能或多或少存在着偏差,组成了这种参差性。有些人王戎早慧、一帆风顺,很快就能超越同龄人、享受生命之花的绽放;而有的人懵懵懂懂、坎坎坷坷,XXX XXX XXX。本文回忆自己最近10年的人生历程,围绕着学习、工作、生活和感情,追忆青春的同时,勉励自己勇敢拼搏,并在最后探讨生命的意义、人生因该怎么度过,XXX XXX XXX。 阅读全文

posted @ 2015-04-18 22:01 wangyw 阅读(462) 评论(0) 推荐(0)

2015年1月10日

STM32F103 ucLinux开发之四(内核启动后的调试)

摘要: Stm32-uclinux启动后的调试1、 修改__pfn_to_page使得能够启动根据STM32F103 ucLinux开发之三(内核启动后不正常)的描述,内核无法启动是选择了平板内存模式后,下面两个宏定义,导致计算错误,从而Backtrace的。#define __pfn_to_page(pf... 阅读全文

posted @ 2015-01-10 17:41 wangyw 阅读(5864) 评论(0) 推荐(0)

2014年3月23日

STM32F103 ucLinux开发之三(内核启动后不正常)(完结)

摘要: 自行编写BOOT启动ucLinux后,内核不能完全启动,卡在mem_init函数,走不下去。分析原因,发现是STM32F103,内核的内存分配有问题,但是暂时找不到解决的办法。 阅读全文

posted @ 2014-03-23 00:09 wangyw 阅读(2981) 评论(0) 推荐(0)

2014年3月22日

STM32F103 ucLinux开发之二(内核启动汇编代码分析)

摘要: BOOT跳转到内核后,首先要执行一长段的汇编代码,然后才能跳转到C语言函数start_kernel。本文分析start_kernel函数之前的汇编代码,做个记录。 阅读全文

posted @ 2014-03-22 21:07 wangyw 阅读(3792) 评论(0) 推荐(0)

STM32F103 ucLinux开发之一(BOOT分析及源码)

摘要: STM3210E-EVAL官方开发板,主芯片STM32F103ZET6,支持ucLinux开发,官网也给出了开发套件。但是官网没有给出BOOT的源代码, 只有HEX文件(根据推测该HEX文件时KEIL生成的)。 看过UBOOT的启动后,了解了BOOT启动都干些什么事,我仿照UBOOT在KEIL软件下写功能超级简单的BOOT,就是完成外设的初始化, 初始化控制器串口1,经过验证,可以跳转到内核,内核能够实现printf打印输出。 阅读全文

posted @ 2014-03-22 20:55 wangyw 阅读(16850) 评论(0) 推荐(1)

导航