自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小黑屋

兴趣使然,专注

  • 博客(26)
  • 资源 (6)
  • 收藏
  • 关注

原创 [ARM]GIC相关知识

ARM GICGICv2-GICv3 重要变化cpu interfaceGICv2架构,cpu interface是实现在gic内部,而且gic的寄存器,都是memory-mapped方式访问。GICv3架构,cpu interface从gic内部剥离,实现在PE的内部。并且将cpu interface的寄存器,提供了系统寄存器访问方式,从而实现中断的快速响应。core的标识GICv3中,对于core的标识,使用了属性层次的方式,来进行标识,从而可以支持更多的core,而GICv2中,支持最大8

2021-03-20 01:27:12 462

原创 [ARM][Q]cpuidle wfi之前关中断后怎么被中断踢出wfi

cpuidle 中断疑惑点,为什么wfi之前local_irq_disable还能被中断把core踢出wfi?GIC和各个CPU的接口包括两种硬件信号:(a)触发CPU中断的信号。nIRQCPU和nFIQCPU信号线,熟悉ARM CPU的工程师对这两个信号线应该不陌生,主要用来触发ARM cpu进入IRQ mode和FIQ mode。(b)Wake up信号。nFIQOUT和nIRQOUT信号线,去ARM CPU的电源管理模块,用来唤醒CPU的 。因此disable了CPU的中断仅仅是堵死了

2021-03-20 01:25:36 856

原创 [Linux][K]memory init flow

内存大小内存dts解析memory@40000000 { device_type = "memory"; reg = <0 0x40000000 0 0x1e800000>; };解析代码流程,最后将base addr与size添加到memblock中start_kernel setup_arch setup_machine_fdt early_init_dt_scan early_init_dt

2021-03-20 01:19:14 498

原创 [Linux][K]IRQ代码阅读记录

exp: intc: interrupt-controller@9bc0000 { compatible = "qcom,msm8996-gic-v3", "arm,gic-v3"; #interrupt-cells = <3>; interrupt-controller; #redistributor-regions = <1>; redistributor-stride = <0x0 0x40000>; reg = <0x

2021-03-20 01:07:41 396 1

原创 [Linux][Power]RuntimePM功能

Runtime PM背景介绍:每个设备(包括CPU)都处理好自身的电源管理工作,尽量以最低的能耗完成交代的任务,尽量在不需要工作的时候进入低功耗状态,尽量不和其它模块有过多耦合。每个设备都是最节省的话,整个系统一定是最节省的。RPM的核心机制:1)为每个设备维护一个引用计数(device->power.usage_count),用于指示该设备的使用状态。2)需要使用设备时,device driver调用pm_runtime_get(或pm_runtime_get_sync)接口,增加引用计数

2021-03-20 00:53:58 1116

原创 [Linux][Power] SMP Bootcpu代码阅读记录

online 可以被调度的active 可以被迁移的present 内核已接管的possible 系统存在的CPU,但没有被内核接管cpu_down \->_cpu_down(cpu, 0) \->take_cpu_down \->__cpu_disable() \->mp_ops->cpu_disable() \-&gt...

2019-08-14 17:21:46 1345

原创 [Linux][Power]cpu_down代码阅读记录

Base linux5.0CPU-up CPU-down BP AP BP AP OFFLINE OFFLINE | ^ v ...

2019-08-14 17:20:32 1796 2

原创 [Linux][Power] suspend代码阅读记录

Base Linux RC5.0echo mem > /sys/power/stateSuspend Resume | | call notifiers Turn On Power | | ...

2019-08-14 17:17:42 779

原创 [Linux] [API]Kmalloc代码阅读记录

Kmalloc代码阅读记录Base Linux RC5.0SLOB SLAB SLUBstatic __always_inline void *kmalloc(size_t size, gfp_t flags){ if (__builtin_constant_p(size)) {#ifndef CONFIG_SLOB unsigned int index;#endif if ...

2019-08-14 17:14:37 419

原创 [Linux][API]中断下半部区别

linux kernel已经把中断处理分成了top half和bottom half,看起来已经不错了,那为何还要提供softirq、tasklet和workqueue这些bottom half机制workqueue和softirq、tasklet有本质的区别:workqueue运行在process contextsoftirq和tasklet运行在interrupt contexttas...

2019-07-24 13:18:59 292

原创 [Linux][Power] Thermal Power allocator governor 分析

Power allocator governor 分析PID控制算法原理图 k_d |current_temp | | ...

2018-11-26 17:18:50 1379

原创 [Linux][Power]CFS调度策略

CFS调度策略概述CFS(完全公平调度器)是从内核2.6.23版本开始采用的进程调度器。基本原理:设定一个调度周期(sched_latency_ns),目标是让每个进程在这个周期内至少有机会运行一次。也就是每个进程等待cpu的时间最长不超过这个调度周期;然后根据进程的数量,平分这个调度周期内cpu的使用权,由于进程的优先级与nice值不同,分割的时候需要加权,每个进程的累积运行时间保存在自己的vru

2017-06-16 10:49:28 2069

原创 [Ccode]cpu little big endian 判断

union 的成员本身就被存放在相同的内存空间(共享内存,正是union 发挥作用、做贡献的去处),因此,我们可以将一个CHAR/BYTE 数据和一个整型数据同时作为一个union 的成员,得出如下答案:int checkCPU(){ { union w { int a; char b; } c; c.a = 1; return (c.b

2017-03-23 13:50:51 852

原创 [ARM]AArch64异常

AArch64 异常SynchronousAsynchronousIRQFIQSErrorSynchronous exceptions includeService call: SVCs, SMCs and HVCs(covered later)Aborts from MMUSP and PC alignment checkingUnallocated instructionsSE

2016-11-16 10:11:28 2371 3

原创 [Linux][Powerl]pm autosleep flow

本文基于liunx4.9 code画的基本流程图,详细概述后续再添加。

2016-11-15 21:06:39 839

原创 [ATF][Power]ARMv8 psci bootup target cpu api

本文软件分析使用arm-trust-firmwire v1.3版本。基于公开的fvp platform分析流程 cpu on的api是提供给cpu bootup使用的,主要其他core将目标cpu bootup的api(hotplug 插核的动作),从atf执行完成后还是会返回到kernel。而目标cpu开始进行warm boot(hotplug on)的动作,具体参考章节ARMv8 cpu w

2016-11-07 15:25:15 2132

原创 [ATF][Power]ARMv8 arm trust firmware

ARM 全Trustzone解决方案,软件架构有ARM TBBR规范,在构建运行TEE环境时,ATF与TrustOS构成基本TEE执行环境。 本文主要介绍arm trust firmware组件。定义与缩略语: REE: Rich Execution Environment TEE: Trusted Execution Environment OP-TEE :Op

2016-11-06 23:04:26 11264 2

原创 [ATF][Power]ARMv8 psci cpu off api

本文软件分析使用arm-trust-firmwire v1.3版本。基于公开的fvp platform分析流程 cpu off的api是提供给hotplug使用的,主要是将cpu core powerdown。 psci 接口cpu off是在32bit的接口里面,以前没关注过这些,又翻看来一下kernel psci接口。 如下是kernel的psci接口设置函数,对应cpu off是直接赋

2016-11-06 22:50:22 3694

原创 [Builderror]andriod sdk 环境搭建

andriod sdk 环境搭建问题总结:系统环境Ubuntu12.04 x64版本Java: java 的版本一定要与系统X64(X86)匹配 根据各个版本的搭建环境教材:设置java环境变量有三个地方:1: ./bashrc ———这类环境变量只在某个用户的所有SHELL下起作用,对于其他用户而言,这个变量是不存在的。2: /etc/profile ———-这类环境变量对

2016-11-05 23:50:51 691

原创 [Builderror]RVCT 安装问题

RVCT 安装问题 报错信息: Exception in thread “main” Java.lang.RuntimeException: java.io.IOException: Cr teProcess: env error=2 at com.arm.io.Environment.getEnv(Environment.java:82) at com.arm.io.Envi

2016-11-05 23:48:36 4463 2

原创 [Builderror]pointer to incomplete class type is not allowed

pointer to incomplete class type is not allowed static struct ready_dataconf s_ready_dataconf; struct ready_dataconf* s_ready_dataconf_a=&s_ready_dataconf; 变量定义要放在对应的.c文件struct ready_dataconf { ui

2016-11-05 23:46:31 801

原创 [ATF][Power]ARMv8 psci cpu suspend api

本文软件分析使用arm-trust-firmwire v1.3版本。基于公开的fvp platform分析流程 。 PSCI smc的api主要有如下几个。 switch (smc_fid) { case PSCI_CPU_SUSPEND_AARCH64: return psci_cpu_suspend(x1, x2, x3);

2016-11-05 23:43:22 3362

原创 [ATF][Power]ARMv8 cpu warm boot (cpu hotplug vs cpu resume)

本文软件分析使用arm-trust-firmwire v1.3版本。基于公开的fvp platform分析流程 cpu hotplug vs cpu resume

2016-11-05 23:35:39 1630

原创 [ATF]ARMv8 cpu warm boot (hotplug on)

本文软件分析使用arm-trust-firmwire v1.3版本。基于公开的fvp platform分析流程。 在v1.3中,warm boot的entry point是定义好的,根据ARMv8 TRM,配置cpu reset address,主要流程如下,符合ARM TRM,关键点: enable el3 mmu/dcace power on domain enable cci sn

2016-11-05 23:33:21 3156

原创 [ATF]ARMv8 cpu cold boot

本文软件分析使用arm-trust-firmwire v1.3版本。基于公开的fvp platform分析流程。* Boot Loader stage 1 (BL1) _AP Trusted ROM_* Boot Loader stage 2 (BL2) _Trusted Boot Firmware_* Boot Loader stage 3-1 (BL31) _EL3 Runtim

2016-11-05 23:24:29 3463

原创 [网络]Ubuntu设置固定ip

Ubuntu设置固定ip上网步骤:注:对Ubuntu12.04重启后DNS重置无法联网也有效 1、手动设置固定ip $ sudo vi /etc/network/interfaces —在最后添加auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.1:w

2016-11-05 23:19:02 394

Jungo 方也驱动

方也驱动代替Jungo 适用用与win7,win8,win7 64位和win8安装时请注意要禁用驱动签名,适用于展讯芯片的驱动

2013-08-10

SEED-XDS560驱动

SEED-XDS560驱动,在CCS3.3下安装应用,4.0下面用不了,请按步骤安装,不然用不了

2012-05-21

深入python中文版

Python,是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。 本书绝对是学习python的经典书籍

2012-04-12

Effective C++

Scott最经典的作品升级换代了!最新版对第2版进行了全面的修订、更新和补充,反映了现代C++程序设计决策。最有代表性的新知,当然是模板和泛型编程。

2012-04-12

C++ 书籍推荐 从入门到精通所要看的书籍

推荐几本C++的书籍 从入门到精通所要看的书籍

2011-07-28

空空如也

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

TA关注的人

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