<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chbgoon的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chbgoon</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chbgoon]]></copyright><item><title><![CDATA[深入理解Linux内存管理]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126315381</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126315381</guid><author>chbgoon</author><pubDate>Sat, 20 Aug 2022 11:59:03 +0800</pubDate><description><![CDATA[内存是计算机最重要的资源之一，内存管理是操作系统最重要的任务之一。内存管理并不是简单地管理一下内存而已，它还直接影响着操作系统的风格以及用户空间编程的模式。可以说内存管理的方式是一个系统刻入DNA的秉性。既然内存管理那么重要，那么今天我们就来全面系统地讲一讲Linux内存管理。外存是程序存储的地方，内存是进程运行的地方。外存相当于是军营，内存相当于是战场。选择一个良好的战场才有利于军队打胜仗，实现一个完善的内存管理机制才能让进程多快好省地运行。如何更好地实现内存管理一直是操作系统发展的一大主题。在此过程中内]]></description><category></category></item><item><title><![CDATA[收藏金典CSND笔记]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126437917</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126437917</guid><author>chbgoon</author><pubDate>Sat, 20 Aug 2022 11:53:10 +0800</pubDate><description><![CDATA[它山之石可以攻玉，以下链接都是本人看到很不错，为了以后经常回顾学习，所以统一做了一个笔记，希望也对大家有用。7、soc设计内容与soc设计流程总结。1、Ubuntu虚拟机安装EDA工具。11、很好的学习linux内核。3、verdi和VCS使用。4、Verilog学习教程。8、数据结构与算法汇总。]]></description><category></category></item><item><title><![CDATA[字符串操作]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126354177</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126354177</guid><author>chbgoon</author><pubDate>Mon, 15 Aug 2022 20:24:32 +0800</pubDate><description><![CDATA[实现逻辑，每个整数看其转换进制，从个位到十位百位都可以通过%操作加上/操作获得，再用一个字符数组保存0-F,用个位数对应值转为字符，实现逻辑，在比较字符时可以将其统一转换为大写或小写，然后再进行比对即可，和正常对比无其他不同。注意转换出的字符串是反向的,还要考虑传入的若是负数如何处理，再用翻转字符串完成最后整个操作。实现逻辑，判断字符串长度是否相同，若相同逐个比较字符是否相同。实现逻辑，就是将字符串从中间一分为二，互相换位置即完成了翻转的效果。实现逻辑，逐个赋值直到遇到'\0'停止即可。...]]></description><category></category></item><item><title><![CDATA[TCP-UDP协议]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126354152</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126354152</guid><author>chbgoon</author><pubDate>Mon, 15 Aug 2022 20:22:57 +0800</pubDate><description><![CDATA[在建立连接时，SYN和ACK可以一同发送到客户端，而断开连接时，只是客户端不再发送数据了，但还可以接收数据，服务端也不一定。字节就要进行数据的分片处理，对于多分片，每次分片都有自己的偏移值，除最后一个外，其它都有MF标志，传到主机后，主机会。并未丢失，而客户端以为服务器没收到，又发了一条，连接建立成功，数据发送完毕后断开，此时那条消息到达服务器，本来是失效。4，客户端接收到服务端的释放连接报文，发送确认包到服务端，进入TIME_WAIT状态，服务端收到应答立马关闭此连接。...]]></description><category></category></item><item><title><![CDATA[网络协议之http]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126354093</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126354093</guid><author>chbgoon</author><pubDate>Mon, 15 Aug 2022 20:21:30 +0800</pubDate><description><![CDATA[HTTP是一个基于请求与响应模式的、无状态的、应用层的协议，常基于TCP的连接方式。5，GET只可支持ASCLL字符，中文乱码，POST支持标准字符。2，GET传输数据在URL中用户可见，POST用户不可见。3，GET传输数据率小，效率高，POST传输数据量大。4xx：客户端错误--请求有语法错误或请求无法实现。2xx：成功--表示请求已被成功接收、理解、接受。5xx：服务器端错误--服务器未能实现合法的请求。1xx：指示信息--表示请求已接收，继续处理。4，GET不安全，POST安全性较高。......]]></description><category></category></item><item><title><![CDATA[NBIOT协议]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126354122</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126354122</guid><author>chbgoon</author><pubDate>Mon, 15 Aug 2022 20:21:04 +0800</pubDate><description><![CDATA[COAP是一种在物联网界的类web协议，COAP协议类似http协议，不过由于智能设备资源少，COAP是以二进制格式传输，传输层是UDP,支持。1，Connect（连接态），模块注册入网后处于该状态，可以发送接收数据，无数据交互超过一段时间进入Idle模式，时间可配置。2，大连接，相比现有无线技术，同一基站增多50-100倍的接入数，每小区可以达到50k的连接数，实现万物互联的海量连接。3，PSM(节能模式)，此模式下终端关闭收发信号机，不监听寻呼，因此虽然注册在网络但信令不可达，处于休眠态，功率很小。..]]></description><category></category></item><item><title><![CDATA[杂乱知识总结]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126354072</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126354072</guid><author>chbgoon</author><pubDate>Mon, 15 Aug 2022 20:18:05 +0800</pubDate><description><![CDATA[当任务申请某资源时，此资源已被占用，那么判断当前任务是否比占用资源的任务优先级高，若高则将占用资源任务的优先级。就是高优先级任务要访问共享资源，而此时低优先级任务正在占用，此时中等优先级任务到来先执行完毕后，低优先级任务释放资源高优先级。htons，htonl，ntohs,ntohl，主机序与网络字节序的转换函数。网络字节序其实就是大端字节序，为了统一通信标准，都统一转换为相同字节序。小端字节序：低地址存低位，高地址存高位，更符合人类思维。大端字节序：低地址存高位，高地址存地位，更直观。...]]></description><category></category></item><item><title><![CDATA[多进程与多线程]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126354044</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126354044</guid><author>chbgoon</author><pubDate>Mon, 15 Aug 2022 20:16:25 +0800</pubDate><description><![CDATA[1，关于资源，子进程除了代码段和父进程共享以外，其他的就是一个复制过来的副本，二者并不共享地址空间，两个是单独的进程，之后就没太多关系。4，多进程程序更加健壮，多线程出现某个线程挂掉导致整个业务挂掉，多进程有独立的地址空间，一个进程挂掉影响可能并不大。2，共享内存，效率高，可直接读写内存不需任何数据拷贝，而管道，消息队列需要拷贝4次，共享内存只需2次。1，进程是系统资源分配的最小单位，线程是程序执行的最小单位，即CPU调度的基本单位。3，在线程中malloc等申请的空间都是占的进程的资源，即堆资源。...]]></description><category></category></item><item><title><![CDATA[RAM内存 & ROM存储]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126354013</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126354013</guid><author>chbgoon</author><pubDate>Mon, 15 Aug 2022 20:14:25 +0800</pubDate><description><![CDATA[1，SRAM: S->static(静态)，6个晶体管存储一个bit，不需要周期性补充电源来保持记忆，故为静态。存取速度快，成本高，6，NAND Flash:  基本存储单元为串联，故减少了金属导线占用的面积，存储密度高，适用于需要大容量存储的场合，不可位读取，5,LPDDR：是DDR SDRAM的一种，面向低功耗内存而制定的通信标准，以低功耗和小体积著称，专门用于移动式电子产品。5，NOR Flash: 基本存储单元为并联，故可以实现位读取，读取速率快，存储密度低，适用于代码存储，不适合存储数据。...]]></description><category></category></item><item><title><![CDATA[gdb调试]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/126353967</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/126353967</guid><author>chbgoon</author><pubDate>Mon, 15 Aug 2022 20:12:24 +0800</pubDate><description><![CDATA[2，使用调试器选项follow-fork-mode选项，设置调试父进程还是子进程，如set follow-fork-mode child。嵌入式目标机装上gdbserver,挂载PC共享目录，使用gdbserver运行程序，PC端连接目标机进行gdb调试。1，info threads 显示当前可调试的所有线程，gdb会为每个线程分配一个ID。3，step 表示在单步执行的时候，只有当前线程会执行。1，单独调试子进程， 使用attach “PID”单独调试。2，thread ID 调试指定的目标ID的线程。.]]></description><category></category></item><item><title><![CDATA[稳定性能力评估图]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/125600654</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/125600654</guid><author>chbgoon</author><pubDate>Mon, 04 Jul 2022 15:12:28 +0800</pubDate><description><![CDATA[稳定性能力评估地图： 
 初级任职需求： 
1. ARM芯片学习，理解ARM的7种工作模式和寄存器。 
2. 堆栈概念，理解堆栈的出栈入栈过程。 
3. 内存概念：MMU原理，虚拟地址，物理地址，内核地址，用户地址。 
3. LOG和logs tools专项， 包括死机log获取，log解析工具使用。 
4. KE 死机dump backtrace原理。 
5. 系统看门狗WDT 工作原因及WDT 类型重启原理。 
6. 会使用GDB 反汇编，定位源码位置，构建死机堆栈系统调用流程图。 
7. 符号表概念：]]></description><category></category></item><item><title><![CDATA[稳定性-死机问题]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/125600377</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/125600377</guid><author>chbgoon</author><pubDate>Mon, 04 Jul 2022 15:06:08 +0800</pubDate><description><![CDATA[死机问题
1. 死机/phong hang 定义
当手机长时间无法再被用户控制操作时，我们称为死机或者hang 机。
在这里我们强调长时间，如果是短时间，我们归结为Perfomance 问题，即性能问题.2. 死机表现
* 用户操作手机无任何响应, 如触摸屏幕，按键操作等.
* 手机屏幕黑屏, 无法点亮屏幕.
* 手机界面显示内容和用户输入风马牛不相及.可能导致死机的原因可能导致死机的原因
1. 系统简图
当用户对手机进行操作时, 对应的数据流将是下面一个概括的流程图.
hang process * HW ]]></description><category></category></item><item><title><![CDATA[crash分析工具]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/125600323</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/125600323</guid><author>chbgoon</author><pubDate>Mon, 04 Jul 2022 15:00:32 +0800</pubDate><description><![CDATA[什么是Crash？   当linux系统内核发生崩溃的时候，可以通过KEXEC+KDUMP等方式收集内核崩溃之前的内存，生成一个转储文件vmcore。内核开发者通过分析该vmcore文件就可以诊断出内核崩溃的原因，从而进行操作系统的代码改进。那么Crash就是一个被广泛使用的内核崩溃转储文件分析工具。    对调试来讲，gdb是非常适合的，但gdb始终是调试native的工具，不支持kernel信息显示，比如task信息之类的。crash补足了这个短板，由Dave Anderson开发和维护的一个内存转储分]]></description><category></category></item><item><title><![CDATA[gdb调试-总结]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/125600120</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/125600120</guid><author>chbgoon</author><pubDate>Mon, 04 Jul 2022 14:57:03 +0800</pubDate><description><![CDATA[GDB调试
概要
    coredump是linux原生的概念，目前有很多工具可以支持coredump调试。其中gdb/trace32都可以支持。
    coredump包含进程空间的内存，如果在加上含有调试信息的lib/程序，那么可以还原出当时异常的场景，这时你可以查看寄存器内容，调用栈，变量和内存等等。这对分析问题非常有帮助。
    下面我们会一一介绍gdb和trace32如何调试coredump。
1. gdb (GNU debugger)
(1). 概述
    GDB是GNU开源组织发布的一]]></description><category></category></item><item><title><![CDATA[linux-内核锁]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/123495480</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/123495480</guid><author>chbgoon</author><pubDate>Sat, 14 May 2022 12:46:11 +0800</pubDate><description><![CDATA[目录：

一、铺垫知识

1、指令执行流

2、上下文

3、抢占

二、内核锁基础知识

1、为什么要用锁？why

2、锁保护什么？what

3、锁是如何保护资源的？How

三、各类锁的介绍

1、原子操作

2、spinlock

3、mutex

4、…



进程指令执行流

代码在CPU上执行的指令数据流，由一系列代码组成。可分为两大类：线程维度和中断维度



1、cpu只要上电，就需要不停的执行指令，永不停歇，若无事可做，那就执行空指令，直到下电。cpu类似一个跑道，各个task轮流到跑]]></description><category></category></item><item><title><![CDATA[Android系统的稳定性分析-2.0]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/124348057</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/124348057</guid><author>chbgoon</author><pubDate>Fri, 22 Apr 2022 15:59:41 +0800</pubDate><description><![CDATA[分析Android问题时，经常会遇到一些稳定性问题。什么是稳定性问题呢，我归结有以下特点，

非必现问题，或没有找到复现路径的问题。其实没有非必现问题，只有找不到复现方法。系统越复杂这类问题越多，因为软件路径太多了。
	应用的死机重启。这类问题不能简单的归结为应用问题，毕竟应用是跑在系统上的。当应用开发人员无法分析出问题时，可能就会认为是稳定性问题。
	系统死机重启。Android开发还是偏重应用的，这样导致系统开发人员较少。很多时候碰到这类问题就找不到分析方法，也就归到稳定性上。起始这类问题与Linux系]]></description><category></category></item><item><title><![CDATA[高通-Android平台稳定性问题分析]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/123864135</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/123864135</guid><author>chbgoon</author><pubDate>Thu, 31 Mar 2022 10:04:55 +0800</pubDate><description><![CDATA[1、复位类型

类型

1:Warm reset --Many power rails are not reset, for example DDR

--Warm reset is designed to capture dump

2:Hard reset --It will not reset digital/analogic power domain inside PMIC,but will reset power rails that are exported externally.

3:Dvd]]></description><category></category></item><item><title><![CDATA[UEFI 日志查看的方法]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/123797188</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/123797188</guid><author>chbgoon</author><pubDate>Mon, 28 Mar 2022 15:42:33 +0800</pubDate><description><![CDATA[1. fastboot 模式下执行 fastboot oem log

2. 正常启动后，通过 adb 命令导出分区查看：

/dev/block/by-name/xbl_sc_logs xbl_sc log，最多保存10次

/dev/block/by-name/logfs xbl + abl log，保存次数跟熔丝状态相关



方法：

adb pull /dev/block/by-name/xbl_sc_logs .

stringsxbl_sc_logs &gt;xbl_sc_logs.txt..]]></description><category></category></item><item><title><![CDATA[trace32使用]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/123796184</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/123796184</guid><author>chbgoon</author><pubDate>Mon, 28 Mar 2022 15:18:54 +0800</pubDate><description><![CDATA[常用操作：

1、加载全量代码命令如下：

y.SourcePATH.srd z:\code\sm8450\kernel_platform\msm-kernel

注意：加载代码时，要注意代码的配套关系，通常要看内核版本号

Linux version 5.10.81-qki-consolidate-android12-9-g0d22ce60d851

0d22ce60d851 是版本构建时的kernel仓的tag点（commit id），可以进到kernel仓并checkout到该tag点，确保代码和du]]></description><category></category></item><item><title><![CDATA[嵌入式软件工程师必备技能]]></title><link>https://blog.youkuaiyun.com/chbgoon/article/details/123544274</link><guid>https://blog.youkuaiyun.com/chbgoon/article/details/123544274</guid><author>chbgoon</author><pubDate>Thu, 17 Mar 2022 10:41:09 +0800</pubDate><description><![CDATA[1、BSP开发|嵌入式软件|Linux驱动|笔试面试大全

BSP开发|嵌入式软件|Linux驱动|笔试面试大全_Evan_ZGYF丶的博客-优快云博客_嵌入式驱动面试题2、嵌入式软件工程师经典笔试题

嵌入式软件工程师经典笔试题_ch3rry的博客-优快云博客_嵌入式笔试题目

3、嵌入式程序员面试题

嵌入式程序员面试题_zhangdaisylove的博客-优快云博客

4、Android启动流程简析

Android启动流程简析（一） - 简书 (jianshu.com)

5、Linux I2]]></description><category></category></item></channel></rss>