当前位置: 首页 > news >正文

S3C2440时钟电源管理

S3C2440的时钟可以选用晶振(XTAL),也可以使用外部时钟(EXTCLK),由系统复位时,在复位信号上升沿对引脚OM3、OM2所测的状态来确定。由于我所用的开发板这两个引脚接地,故外部晶振作为主锁相环(MPLL)和usb锁相环(UPLL)的时钟源。

含有两个锁相环MPLL、UPLL产生系统所需要的不同频率的时钟
MPLL:
 为CPU产生FCLK时钟
 为AHB产生HCLK时钟
 为APB产生PCLK时钟

UPLL:
 为usb(Host and Device)产生UCLK(48M)


FCLK,HCLK和 PCLK 
FCLK是提供给ARM920T 的时钟。 
HCLK 是提供给用于 ARM920T,存储器控制器,中断控制器,LCD 控制器,DMA 和 USB 主机模块的 AHB
总线的时钟。 
PCLK 是提供给用于外设如WDT,IIS,I2C,PWM 定时器,MMC/SD 接口,ADC,UART,GPIO,RTC 和
SPI的APB 总线的时钟。


下图为PLL(锁相环)方框图

设置FCLK要用到PLL控制寄存器MPLLCON

例如:如果外部晶振Fin为12MHZ,设置FCLK为400MHZ,

由公式Fout = 2 × m × Fin / ( p*2^s) 此处:m =MDIV+8, p=PDIV+2, s=SDIV

可知rMPLLCON=((92<<12)|(1<<4)|1)    其中(MDIV=92, PDIV=1,SDIV=1)。

下面的这个函数是配置FCLK HCLK PCLK的比例的函数,用到时钟分频寄存器CLKDIVN

[cpp] view plaincopy
  1. void ChangeClockDivider(int hdivn,int pdivn)  
  2. {  
  3.      // hdivn,pdivn FCLK:HCLK:PCLK  
  4.      //     0,0         1:1:1   
  5.      //     0,1         1:1:2   
  6.      //     1,0         1:2:2  
  7.      //     1,1         1:2:4  
  8.      //     2,0         1:4:4  
  9.      //     2,1         1:4:8  
  10.      //     3,0         1:3:3  
  11.      //     3,1         1:3:6  
  12.     rCLKDIVN = (hdivn<<1) | pdivn;      
  13.   
  14.     if (hdivn == 2)  
  15.         rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<9);             
  16.     if (hdivn == 3)  
  17.         rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8);  
  18. }  


 

[cpp] view plaincopy
  1. //**************************[ UPLL ]*******************************  
  2. void ChangeUPllValue(int mdiv,int pdiv,int sdiv)    //配置UPLLCON寄存器  
  3. {  
  4.     rUPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;  
  5. }  
[cpp] view plaincopy
  1. void CalcBusClk(void)   //计算总线频率  
  2. {  
  3.     U32 val;  
  4.     U8 m, p, s;  
  5.     val = rMPLLCON;  
  6.     m = (val >> 12) & 0xff;  
  7.     p = (val >> 4) & 0x3f;  
  8.     s = val & 3;  
  9.   
  10.     //(m+8)*FIN*2 不要超出32位数!  
  11.     FCLK = ((m+8)*(FIN/100)*2)/((p+2)*(1<<s))*100;    //计算FCLK频率  
  12.       
  13.     val = rCLKDIVN;  
  14.     m = (val >> 1) & 3;   //HDIVN 的值  
  15.     p = val & 1;        //PDIVN 的值  
  16.     val = rCAMDIVN;  
  17.     s = val >> 8;     //CAMDIVN[8:9],为HDIVN分频改变位  
  18.       
  19.     switch (m)      //计算HCLK频率  
  20.     {  
  21.         case 0:  
  22.             HCLK = FCLK;  
  23.             break;  
  24.         case 1:  
  25.             HCLK = FCLK >> 1;  
  26.             break;  
  27.         case 2:  
  28.             if(s & 2)   //见CAMDIVN寄存器HCLK4_HALF  
  29.                 HCLK = FCLK >> 3;  
  30.             else  
  31.                 HCLK = FCLK >> 2;  
  32.             break;  
  33.         case 3:  
  34.             if(s & 1)   //见CAMDIVN寄存器HCLK3_HALF  
  35.                 HCLK = FCLK / 6;  
  36.             else  
  37.                 HCLK = FCLK / 3;  
  38.             break;  
  39.     }  
  40.       
  41.     if(p)       //计算PCLK频率  
  42.         PCLK = HCLK >> 1;  
  43.     else  
  44.         PCLK = HCLK;  
  45.           
  46.     val = rUPLLCON;  
  47.     m = (val >> 12) & 0xff;  
  48.     p = (val >> 4) & 0x3f;  
  49.     s = val & 3;  
  50.     UPLL = ((m+8)*FIN)/((p+2)*(1<<s));  
  51.     UCLK = (rCLKDIVN&8)?(UPLL>>1):UPLL;   //计算UCLK频率  
  52. }  

 

 下图为外部时钟为晶振时的上电复位顺序

相关文章:

  • S3C2440PWM 定时器
  • 流媒体基本要点简述:如何在H264数据中获取PTS?
  • linux内核中等待队列(wait_event,wake_up...)
  • H.264中的指数哥伦布解码
  • Linux下的内核测试工具——perf使用简介
  • gdb 打印字符串全部内容
  • gdb 打印所有线程堆栈
  • Linux下如何查看高CPU占用率线程 LINUX CPU利用率计算
  • DEFINE_MUTEX
  • linux du命令参数及用法详解---linux统计磁盘空间大小命令
  • 编码顺序、frame_num和POC
  • Linux Swap机制概述
  • H264编码器
  • CAVLC基于上下文自适应的可变长编码
  • CABAC基于上下文的自适应二进制熵编码
  • 1/4像素运动估计
  • ubuntu11.10 sources.list 资源
  • H264的视频格式H264支持4:2:0的连续或隔行视频的编码和解码
  • SNMP报文抓取与分析(一)
  • SNMP报文抓取与分析(二)
  • Snmp4j编程简介之一
  • Snmp4j编程简介之二:PDU
  • Snmp4j编程简介之三:Snmp
  • 基于SNMP协议的电信网络监测系统的实现
  • 什么是 SNMP 和 MIB
  • snmp服务配置及其oid、mib文件解析
  • 讲解如何进行SNMP MIB的查看
  • linux下测试磁盘的读写IO速度(IO物理测速)
  • FFMPEG发布RTSP流
  • error while loading shared libraries: libavformat.so.56
  • linux修改文件或目录的所有者(chown)和用户组
  • Ubuntu Linux下安装软件方法
  • 基于ubuntu的tcpdump抓包总结
  • tcpdump -w xxxxx.pcap 提示 Permission denied
  • 虚拟机里Ubuntu编译内核方法
  • x264源码下载信息
  • ubuntu下安装程序的三种方法
  • 在Ubuntu上安装使用Systemtap
  • UML设计中的箭头详解
  • 解析UML箭头、线条代表的意义
  • RabbitMQ-C客户端使用说明
  • SDP描述h264
  • live555 linux 编译
  • live555 RTSP服务器建立及消息处理流程
  • LIVE555play流程
  • setsockopt中参数之SO_REUSEADDR的意义
  • SO_REUSEADDR 套接字选项应用实例
  • Ubuntu下使用VI编辑文件必知的常用命令
  • 在linux环境下编译运行OpenCV程序的两种方法 - woshijpfgg
  • fatal error: highgui.h: No such file or directory
  • opencv历史代码下载
  • Ubuntu 12.04下安装OpenCV 2.3.1,图像二值化
  • Debian下安装
  • cvAddWeighted 进行图片融合
  • 【多媒体封装格式详解】---MKV【2】
  • 【多媒体封装格式详解】---MKV【1】
  • 【多媒体封装格式详解】---MKV【3】完
  • ffmpeg AVFilter介绍
  • 从头开始写项目Makefile(六):参数传递、条件判断、include
  • ffmpeg1.2的filter分析
  • OpenCV中寻找轮廓函数cvFindContours的使用说明以及序列cvSeq的用法说明
  • 金鹏GB28181平台对接
  • ffmpeg编码个参数的设置以及作用
  • x264参数介绍
  • X265源码下载地址
  • H.264中整数DCT变换,量化,反量化,反DCT究竟是如何实现的?(无代码,无真相)
  • sofia-sip下载地址
  • Sofia-SIP辅助文档六 - Sofia-SIP中的SIP和SDP特性
  • Sofia-SIP辅助文档三 - 编码指南
  • sofia-sip帮助文档
  • ffmpeg 最简单的水印功能
  • ffmpeg滤镜
  • ffmpeg超详细综合教程(二)——为直播流添加滤镜
  • FFmpeg滤镜代码级分析
  • ffmpeg超详细综合教程——摄像头直播
  • ffmpeg filter过滤器 基础实例及全面解析
  • JM代码阅读之一SODB RBSP EBSP NALU
  • 场编码MBAFF相关
  • MotionEstimate运动估计综述
  • H.264变换量化反量化反变换过程
  • H.264 视频编码器的研究与分析
  • X264结构体中的变量解释
  • H.264熵编码分析
  • UMHexagonS算法优化
  • H.264抗误码策略及FMO
  • H.264/AVC率失真优化( RDO) 策略研究
  • 由帧内8x8预测到MBAFF时相邻块的推导
  • 快速H.264编码算法的研究及实现
  • JM8.6之参考图像管理
  • JM8.6之erc_api.c文件初探
  • 关于JM8.6中MAX_LIST_SIZE值的选取
  • JM8.6之get_block() 1/4亮度像素内插详述
  • 关于level_idc
  • JM8.6的解码端去方块滤波代码详述
  • 解码器输出PSNR为0表示什么
  • 帧内预测模式RDO
  • AMR在IP域中的编码(rfc3267,4867)
  • 教你如何使用automake生成Makefile文件
  • FreeSwitch Lua编程接口(1)dialplan里的配置
  • Makefile 管理工具 — Automake and Autoconf
  • 读写锁优先级的问题解决了
  • linux下sqlite3的使用
  • SQlite数据库的C编程接口(三) 预处理语句(Prepared Statements) ——《Using SQlite》读书笔记 .
  • SQlite数据库的C编程接口(二) 数据库连接 ——《Using SQlite》读书笔记
  • SQlite数据库的C编程接口(一) 简介 ——《Using SQlite》读书笔记
  • SQlite数据库的C编程接口(四) 绑定参数(Bound Parameters) ——《Using SQlite》读书笔记
  • SQlite数据库的C编程接口(五) 便捷函数(Convenience Functions) ——《Using SQlite》读书笔记
  • SQlite数据库的C编程接口(六) 返回值和错误码(Result Codes and Error Codes) ——《Using SQlite》读书笔记
  • SQlite数据库的C编程接口(七) 数据库锁定(Database Locking) ——《Using SQlite》读书笔记
  • SQlite数据库的C编程接口(八) 工具函数(Utility Functions) ——《Using SQlite》读书笔记
  • freeSWITCH中动态加载模块
  • freeswitch新增app接口
  • freeswitch modules 模块
  • FreeSWITCH核心命令
  • automake搭建项目工程例子讲解
  • 工程项目利用AutoMake生成Makefile实战
  • 第四部分 在configure.in中使用宏来检测
  • 第三部分 Makefile 的工程组织
  • 第二部分 Automake的标准工程组织
  • Makefile.am详解
  • Makefile.am编写规则
  • 用automake建立共享库(动态链接库)Makefile
  • C++设计模式10--命令模式(一)--降低请求发送者与接收者耦合
  • C++设计模式10--命令模式(二)(Command)--降低请求发送者与接收者耦合
  • 请求发送者与接收者解耦——命令模式(三)
  • 请求发送者与接收者解耦——命令模式(四)
  • 请求发送者与接收者解耦——命令模式(五)
  • 请求发送者与接收者解耦——命令模式(六)
  • WINDOWS访问SAMBA提示没有权限
  • Linux通过Smb与Windows共享目录
  • linux下代码覆盖率检查工具---gcov的用法
  • std list/vector sort 自定义类的排序就是这么简单
  • Qt调用jrtplib实现单播、多播和广播
  • 使用jrtplib(RTP)传输H.264视频文件
  • Linux下5种动态库运行时搜索路径的方法
  • 交叉编译中libtool相关的问题
  • CentOS 7下编译FreeSWITCH 1.6
  • 安装fusionPBX
  • FreeSwitch Event Socket Command(事件套接字命令行)
  • FreeSwitch中的会议功能
  • freeswitch的dialplan中condition变量
  • freeswitch的拨号规则配置
  • Freeswitch与外域IP对接之incoming call
  • freeswitch 配置动态会议的注意事项
  • freeswitch添加tls加密
  • 通过ODBC连接PostgreSQL和Greenplum
  • freeswitch连接postgres数据库
  • freeswitch 使用mysql替换默认的sqlite
  • CentOS7下初始化PostgreSQL
  • PostgreSQL创建数据库用户
  • 关于对H264码流的PS的封装的相关代码实现
  • 在部署服务器端的时候postgresql调试和远程连接操作需要考虑好远程连接问题。
  • freeswitch 录音录像模块和内核
  • 【FreeSWITCH】录音功能调试报告-2
  • freeswitch录音功能
  • FreeSWITCH黑名单功能设置
  • Freeswitch 录制视频并播放
  • freeswith 录制 MP4格式视频
  • Centos66 编译 Freeswitch mod_shout mp3录音模块
  • 怎么源码安装 PKGCONFIGPATH设置转
  • mod_shout 模块
  • 【PowerDesigner】Constraint name uniqueness问题及处理
  • JAVA小白启蒙篇:第一个SSM框架搭建示例(附源码下载)
  • Maven搭建SSM框架测试HTTP 接口
  • ssm框架下开发RESTful json简单实例
  • SSM编写http接口返回JSON格式数据
  • 三、后台实战——用户登录之JWT
  • centos6.5 gcc升级至4.8
  • 基于JWT前后端token认证
  • JWT的Java使用 (JJWT)
  • CentOS 6.6源码编译升级GCC至4.8.2
  • 在Eclipse里自动导入相应包的类名的快捷键
  • Vue.js2.0从入门到放弃---入门实例(一)
  • Vue.js 2.0从入门到放弃---入门实例(二)
  • vuejs2.0从入门到放弃--入门实例(四)
  • WIN10下搭建vue开发环境
  • warning: implicit declaration of function ‘typeof’
  • Maven下载及安装配置
  • SSM第一篇 最简单的SSM框架搭建过程--SSM简单整合
  • Spring中@Autowired注解用法
  • Mybatis插入postgresql数据库中类型为UUID的字段
  • CSipsimple最新版本编译
  • 编译最新版webrtc源码和编译好的整个项目10多个G【分享】
  • apache-xmlrpc-3.1.3-bin.tar.bz2
  • 编译mcu media server
  • netbeans使用教程
  • 为VMware虚拟机内安装的Ubuntu 16.04设置静态IP地址
  • Webrtc demo system
  • 三个基于WebRTC开源MCU框架的横向对比
  • SIP Servlet开发环境配置
  • HTML5 WebRTC API无需网络获取本地IP
  • 网页版WebRTC多人聊天Demo
  • WebRTC学习资料大全
  • jsSIP-demo(完整源码加注释)
  • jssip中文开发文档(完整版)
  • ffmpeg处理hikvision平台PS流
  • ffmpeg将h264和aac合成ts,内存输入输出
  • ffmpeg转码之TS转PS
  • 从海康7816的ps流里获取数据h264数据
  • 音视频处理之FFmpeg封装格式20180510
  • 系统上线问题小结
  • FreeSWITCH:WebRTC 配置
  • CentOS 6系统FreeSwitch和RTMP服务 安装及演示(一)
  • CentOS 6系统FreeSwitch和RTMP服务 安装及演示(二)
  • CentOS 6系统FreeSwitch和RTMP服务 安装及演示(三)
  • CentOS 6系统FreeSwitch和RTMP服务 安装及演示(四)
  • freeswitch 基于webrtc网页视频、语音通话官方例子video_demo安装
  • 基于opencv的摄像头脸部识别抓取及格式储存(python)
  • OpenCV 利用MFC的Picture控件显示和处理图像
  • HTML5方式使用freeswitch——VERTO模块
  • freeswitch被叫忙处理
  • 用ssl.ca自制证书
  • MediaDevices.getUserMedia()
  • SSL自签署证书生成脚本
  • Win10环境下使用VS2015编译PJProject
  • Windows下编译FFmpeg-2.6.1详解
  • PJSIP在windows(xp或者win7)下的编译,编译工具是vs2008,PJSIP版本2.3
  • win7_32下编译FFmpeg
  • pjproject编译方法与相关错误解决
  • 海康ps流转换h264流
  • linux中/etc/fstab文件删除或修改了,导致系统无法启动
  • pjsip workshop
  • visual studio 2013 快速安全ocx(ActiveX控件)开发
  • Freeswitch一路呼叫的生命周期
  • 使用FreeSWITCH SIP落地的配置总结
  • gdb 调试打印完整字符串
  • 在CentOS6.5上安装/启动PostgreSQL
  • 命令行方式登录PostgreSQL、创建用户和数据库并赋权
  • Pgsql安装
  • PostgreSQL 角色与用户管理介绍
  • Windows平台下编译FFmpeg
  • windows下编译可在visual studio中调试的FFmpeg
  • WIN10下使用VS2017的MSVC编译FFMPEG3.4.2动态静态库
  • FFmpeg编解码常用函数ffmpeg av_parser_parse2()函数
  • Coturn配置
  • windows 编译FFMPEG
  • FreeSWITCH mod_callcenter 整理
  • libtool 工具源码下载路径
  • You must install libopus-dev
  • FreeSWITCH折腾笔记3——数据库修改为postgresql
  • linux以下C 利用openssl的AES库加密,解密
  • gdb调试时的问题Missing separate debuginfos, use: debuginfo-install glibc-XXX
  • FreeSwitch +fusionpbx安装和基本使用
  • pjsip在windows上编译
  • vs 2015查看动态库
  • warning LNK4099:未找到 PDB 问题解决方案
  • DLL错误之——无法加载DLL***.dll:找不到指定的模块(异常来自HRESULT:0x8007007E)问题的终极感悟
  • 使用pjsip传输已经编码的视频,源码在github
  • pjsip视频
  • webrtc2sip项目说明
  • 用VS2015编译pjsip的工程pjproject-vs14
  • Windows下用VS2015+MSYS编译OpenH264
  • Tensorflow基本语法和实现神经网络
  • Package has no installation candidate
  • Ubuntu16.04 安装Tensorflow-CPU
  • PHP接口
  • BeyondCompare3密钥过期如何处理。
  • 硬件原理图
  • ODBC
  • fusionpbx
  • PHP下添加PDO_Pgsql扩展
  • Python异常处理 Python文件操作
  • 文本分类从入门到精通—代码展示
  • pjsip编译视频
  • PJSIP视频用户开发
  • libevent源码深度剖析二
  • gtest的介绍和使用
  • TensorFlow :HelloWorld
  • Oclint 安装指导
  • glibc 源码下载路径
  • “Ceph浅析”系列之二——Ceph概况
  • CEPH浅析”系列之三——CEPH的设计思想
  • Ceph浅析”系列之四——Ceph的结构
  • “CEPH浅析”系列之六——CEPH与OPENSTACK
  • ceph源码
  • Ceph 撸源码系列(一):Ceph开源项目源代码的关键目录介绍
  • Ceph 撸源码系列(二):Ceph源代码里的那些锁 std::mutex(2 of 3)
  • Ceph块设备(RBD)常用命令
  • 人工智能知识记录
  • sipp帮助
  • 第二章 驱动程序调测方法与技巧
  • pjsip代码分析(1)——modules框架
  • Web浏览器已经限制此文件显示
  • stm32死机问题的处理
  • wpf的demo
  • VS2013 MFC 中DLL链接库断点不能命中的解决方案总结
  • STM32相关问题解决方法
  • FastDFS详解
  • Linux内核链表及list_entry解析
  • linux中的jiffies变量
  • linux内核定时器使用及原理
  • 深入理解RCU实现
  • 使用 Vi/Vim 编辑器:基础篇
  • 简述linux同步与异步、阻塞与非阻塞概念以及五种IO模型
  • JFFS2 文件系统及新特性介绍
  • Scapy的使用
  • QEMU学习笔记——QOM(Qemu Object Model)
  • Cgroup学习之——Ubuntu下交叉编译ARM平台libcgroup工具
  • Ubuntu平台采用Qemu搭建ARM虚拟机环境
  • 深入解读Docker底层技术cgroup系列(4)——cgroup子系统cpu
  • 深入解读Linux进程调度Schedule
  • 深入解读Docker底层技术Cgroup
  • 深入解读Linux进程调度系列(5)——调度的入口
  • 深入解读Linux进程调度系列(6)——抢占与非抢占
  • 深入解读Linux进程调度系列(7)——调度与CPU隔离
  • 深入解读Linux进程调度系列(8)——调度与cgroup
  • 深入解读Linux进程调度系列(2)——调度类sched_class详解
  • 深入解读Linux进程调度系列(1)——调度的初始化
  • 深入解读Linux进程调度系列(3)——调度的执行过程
  • 深入解读Linux进程调度系列(4)——调度与时钟中断
  • 深入解读Linux内存管理系列(1)——系统启动阶段的操作
  • 深入解读Linux内存管理系列(2)——内存节点的添加
  • 深入解读Linux内存管理系列(3)——MMU初始化和页表的建立
  • 深入解读Linux内存管理系列(4)——Memblock管理机制
  • 深入解读Linux内存管理系列(5)——lowmem和highmem
  • 深入解读Linux内存管理系列(6)——地址空间划分
  • 深入解读Linux内存管理系列(7)——伙伴系统
  • 深入解读Linux内存管理系列(8)——SLAB初始化
  • 深入解读Linux进程调度系列——数据结构解析
  • 深入解读Docker底层技术cgroup系列(2)——cgroup的初始化
  • 深入解读Docker底层技术cgroup系列(1)——cgroup介绍
  • 深入解读Docker底层技术Cgroup系列(5)——cgroup子系统cpuset
  • ssh 远程连接失败 PTY报错
  • PowerPC L2-Cache Sram
  • PowerPC 汇编
  • Linux内存管理之vmalloc与low_memory
  • Linux内核模块静态加载的顺序
  • Linux进程地址空间布局
  • Linux终端控制台console和earlycon分析
  • ARM平台AMBA总线uart驱动和console初始化
  • Linux调度新特性EAS
  • Wifi Enable 启动过程
  • WiFi HAL 启动
  • WiFi Interface 的 name 如何获取到
  • WiFi 扫描处理过程
  • WiFi 接口创建过程
  • WiFi 扫描结果的通知过程
  • WiFi 配置设置
  • Android 高通 Wi-Fi 驱动
  • WifiConnectivityManager 管理扫描
  • WiFi 连接到网络的过程
  • Android 网络评分机制
  • Android.mk 语法详解
  • android_get_control_socket 获取 UNIX 域套接字 FD
  • FwmarkServer 实现以及功能分析
  • wpa_supplicant 中 ISupplicant 服务代理客户端对象获取
  • WifiConfigManager NetworkSelector 和 WifiConnectivityManager
  • WifiConfiguration 的各字段的填充和修改
  • Android WiFi 获取 IP 过程
  • Android 网络代理的创建
  • Android 网络管理
  • Android 网络服务类提供的服务接口
  • NetworkManagementService 解读
  • Android WiFi 扫描并选择网络进行连接
  • Android WiFi Dhcp 获取到 IP 和配置的过程
  • 进程管理描述
  • slab 地址空间
  • 深入解读Linux进程调度系列(总览)
  • 深入解读Linux内存管理系列(总览)
  • 转:C语言中如何将二维数组作为函数的参数传递
  • 怎样让函数返回数组
  • linux环境变量如何设置
  • expect移植到powerPC平台的过程
  • system函数 fork函数
  • dow_interruptible() 源码及函数返回分析
  • Linux下分割、合并文件——dd和cat
  • linux系统奔溃之vmcore:kdump 的亲密战友 crash
  • Linux下PS命令详解 (转)
  • chattr 设置隐藏属性
  • 信号量函数(semget、semop、semctl)
  • semop
  • SEM_UNDO
  • 共享内存、消息队列、信号量之ipcs命令详解
  • Linux下使用Shell命令控制任务Jobs执行、Linux后台进程管理以及ctrl+z
  • 线程测试
  • LINUX内核的进程调度策略
  • Vim 多行剪切、复制和删除
  • semop异常分析
  • gerrit push失败问题解决
  • 单播 组播 广播
  • 段描述符和段选择符解析
  • 为线程命名——prctl
  • 内核启动顺序
  • libc库和系统调用
  • I2C总线驱动框架详解
  • 阻塞非阻塞、同步异步
  • 内核栈 用户栈
  • linux 系统信号忽略和system函数返回值问题(system的实现)
  • 浅析Linux下的task_struct结构体
  • TCP UDP 本地套接字 网络套接字
  • 多线程编程(Linux C)
  • Linux系统调用怎么和内核或底层驱动交互的 inode struct file
  • 内存中inode与磁盘中inode
  • Anatomy of a Program in Memory
  • linux pagecache与内存占用
  • Linux中的Page cache和Buffer cache详解
  • inode file 结构
  • 【整理】什么是优先级反转+有何危害+如何避免和解决
  • Linux SOCKET编程详解
  • Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别【转】
  • 64bit 用户空间内核空间
  • MAC地址不能随便配
  • linux上应用程序的执行机制
  • 可执行程序的装载
  • tcpdump截wireshark可以打开的包
  • Linux设备驱动程序 之 中断和锁
  • 自旋锁、互斥锁
  • 内核抢占机制(preempt)
  • mmap为什么比read快
  • linux 调度总结
  • signal、kill、fork
  • 自旋锁死锁
  • 线程相关函数(1)-pthread_create(), pthread_join(), pthread_exit(), pthread_cancel() 创建取消线程
  • Linux下多线程调试以及查看信息
  • mmap 系统调用 的使用
  • vmware player 坑
  • MAC-PHY驱动
  • makefile中的notdir,wildcard和patsubst
  • makefile中=、:=和+=的区别
  • 内存管理大杂烩
  • Linux进程管理内核API函数pid_task( )---根据pid获取task_struct
  • ELF文件和BIN文件 uboot.elf uboot.bin
  • [linux-内核]内核日志及printk结构浅析
  • linux内核中task_struct与thread_info及stack三者的关系
  • linux 内核同步机制之complete
  • linux 内核移植(七)――rest_init函数分析
  • do_initcalls 的原理
  • 根文件系统相关知识
  • initramfs 根文件系统
  • linux根文件系统的挂载过程详解
  • do_initcalls 初始化内核init段(设备驱动module_init 对应init6段)
  • Linux启动分析——init进程与app启动(init进程源码分析)
  • UBOOT引导LINUX内核过程 卡死STARTING KERNEL ...(下载地址,加载地址,入口地址的修改)(UIMAGE和ZIMAGE的区别)
  • linux设备驱动程序-i2c(1):i2c总线的添加与实现
  • 缺页异常(Page Faults) 和 Kernel Oops打印调用流程
  • 中断相关
  • 关于中断是否可以套嵌?
  • 8 下半部和推后执行的工作
  • 9 内核同步介绍
  • 设备树解析过程及platform设备注册
  • linux中probe函数中传递的参数来源
  • i2c注册流程
  • virt_to_page
  • 2020-10-12
  • DMA engine的使用步骤 及 DMA一致性
  • Linux内核源码阅读之系统调用mmap()
  • Linux字符设备驱动实现
  • 13 虚拟文件系统
  • 18.3 通过打印来调试
  • 静态存储区(BSS、数据段、代码段),堆,栈-----------------(划归在C语言)
  • PCIe相关
  • Linux内核配置.config文件
  • 漫谈Linux标准的文件系统(Ext2/Ext3/Ext4)
  • centos配置kdump捕获内核崩溃
  • Linux内核DTB文件启动的几种方式
  • Linux死锁检测-Lockdep
  • 利用GDB、KGDB调试应用程序及内核驱动模块
  • 内核与用户空间交互
  • uboot修改传递给内核的cmdline的方法
  • u-boot 2016.05 添加自己的board 以及config.h uboot移植
  • Uboot系统初始化为何要初始化堆栈?为何C语言的函数调用要用到堆栈,而汇编却不需要初始化堆栈?
  • 编写合格的C代码(1):通过编译选项将特定警告视为错误
  • IOMMU 虚拟IO地址和物理地址相关联
  • 阻塞和非阻塞(串口自环测试失败原因定位)
  • Android-- bionic介绍
  • 解决:网络风暴引起的无法ping通
  • Linux设备驱动——内核定时器
  • PCIe device tree range属性详解
  • linux 下PCIE控制器设备树 学习
  • 通过KGDB进行双机内核调试
  • Mmap的实现原理和应用
  • [Android] 查看MTD,EMMC,MMC三种设备的分区
  • 遇到的问题:uboot下,关闭串口前需要printf打印一个“UART BUS OFF!!!”提示信息,但是打印不出来
  • ARM上电启动
  • Shell脚本 批量修改目录下若干文件名
  • ATF(ARM Trusted firmware)完成启动流程
  • Shell脚本-tr 将大写字母变为小写
  • Shell脚本定义变量和重新赋值
  • Gerrit修改前一次提交的方法
  • zip 后压缩包带路径
  • Makefile中创建一个以当前时间为文件夹名的文件
  • getprop setprop初步探索
  • 内存管理 kmalloc
  • 内存管理——初始化流程
  • 内存管理——高端内存
  • 在shell或bash执行一个bin文件或者脚本的流程
  • 内存管理——页表
  • Linux内核空间与用户空间信息交互方法
  • 设备树解析过程
  • TCP-IP 用户态编程
  • Linux网络编程之socket创建
  • Linux网络编程之connect创建
  • 邵国际: C 语言对象化设计实例 —— 命令解析器
  • 吴锦华/明鑫: 用户态文件系统(FUSE)框架分析和实战
  • Linux kernel路由机制分析(下)
  • Linux kernel路由机制分析(上)
  • 1. 策略路由
  • Android路由设置
  • Netlink套接字
  • 第十二章 trie路由--基于Linux3.10