MingruiZhou

4
获赞数
0
关注数
2
粉丝数
武汉
IP 属地未知
2020-07-08 加入
浏览 5.8k

linux内核从业者,略懂内存管理、进程调度以及驱动框架。

了解NXP ls1046/ls2084,三星 4412/4418,microsemi 系列交换芯片。

email: MingruiZhou@outlook.com

13 声望|新手
linux编程
12
c
12
linux
12
调试技巧
9
嵌入式编程
6
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
1 青铜勋章
个人动态
  • 发布了文章2020-07-13
    linux-小代码段时间测量.md
    示例程序如下: {代码...} 编译运行如下: {代码...} 如上,此类入侵式的性能测量一般用于早期开发。 email: MingruiZhou@outlook.com
  • 发布了文章2020-07-13
    linux-cppcheck静态代码检查.md
    cppcheck是一个C/C++的静态代码检查工具。它不仅可以检查代码中的语法错误,还可以检查出编译器检查不出来的缺陷,从而辅助提升代码质量。cppcheck能够发现很多错误,但不能发现所有的错误。
  • 发布了文章2020-07-12
    linux-c编程-编译预处理(#pragma预处理分析)
    #pragma是编译器指示字,用于指示编译器完成一些特定的动作。#pragma所定义的很多关键字是编译器和操作系统特有的,并且在不同的编译器间不可移植。但对于不能识别的#pragma命令预处理器将忽略。
  • 发布了文章2020-07-12
    linux-c编程-mtrace分析内存泄露.md
    在工作中,动态内存分配是常有的事,而伴随动态内存分配而来的最大的问题就是“内存泄露”。所谓“内存泄露”的意思就是申请了内存,但忘记归还给系统,长此以往,系统的可分配内存越来越少,这种问题一旦出现必然很难查找。原因很简单,程序是人写的,写的人都忘记自己...
  • 发布了文章2020-07-11
    linux-c编程-valgrind调试方法.md
    -tool=<name> 最常用的选项。运行valgrind中名为toolname的工具。默认memcheck。 memcheck ------> 这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内...
  • 发布了文章2020-07-11
    linux-c编程-栈回溯.md
    一般察看函数运行时堆栈的方法是使用 GDB(bt命令) 之类的外部调试器, 但是, 有些时候为了分析程序的 BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的.
  • 发布了文章2020-07-10
    linux-C基础系列-内存管理(动态内存分配).md
    C语言中的一切操作都是基于内存的,变量和数组都是内存的别名,如何分配这个内存由编译器在变异期间决定的。如定义数组时必须指定数组的长度,因此数组长度是在编译期就必须确定。 但是某些时候程序在运行中,可能需要使用一些额外的内存空间。
  • 发布了文章2020-07-10
    linux-C基础系列-内存管理(野指针).md
    野指针通常指的是指针变量中保存的值不会死一个合法的内存地址,但又对其访问。需要注意的是野指针不是空指针,而是指向内存不可用的指针。C语言中对于空指针(NULL)是可以判断出来的,但是野指针是无法判断一个非空指针是否为野指针。 野指针一般的来源如下:
  • 发布了文章2020-07-09
    at24c02-用户态-io读写.md
    本着一切皆文件的理念,在linux下可使用IO函数进行at24c02的读写操作,通常是按单字节进行读写,由于at24c02数据存储量并不多,对性能影响较弱。因此本文将率先进行单字节读写示例。当然按页读写也是要实现的,万一需要呢。
  • 发布了文章2020-07-09
    at24c02-简介.md
    1. at24c02基本介绍 1.1. 主要规格 容量:256byte 最大速率:100KHz(1.8V)或400KHz(2.7V,5V) 支持随机读写和顺序读写 页写延迟5ms 1.2. 主要注意事项 1.2.1. i2c地址 由于at24系列支持通过上下拉部分针脚来有限的修改芯片的i2c地址,具体与芯片容量有关,如下: 容量...
  • 发布了文章2020-07-09
    树莓派4B(rpi4b)引导ubuntu分析.md
    rpi4b引导ubuntu分析 1. 分析启动命令bootcmd 首先要在在uboot界面终止引导到linux中。 {代码...} 可见,bootcmd实际是执行distro_bootcmd命令,如下: {代码...} 如上,distro_bootcmd遍历执行boot_targets,如下: {代码...} 可见,最终是执行bootcmd_{mmc0、mmc1...