11 2020 档案
摘要:往期问答汇总: 粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数 一个端口号可以同时被两个进程绑定吗? 两个线程,两个互斥锁,怎么形成一个死循环? 一个例子让你看清线程调度的随机性 一、粉丝提问 i2c的设备树和驱动是如何匹配以及何时调用probe的? 粉丝手里的I2C外设
阅读全文
摘要:关于ARM的一些基本概念,大家可以参考我之前的文章: 《到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】》 关于ARM指令用到的IDE开发环境可以参考下面这篇文章 《1. 从0开始学ARM-安装Keil MDK uVision集成开发环境》 一、计算
阅读全文
摘要:关于ARM的一些基本概念,大家可以参考我之前的文章: 《到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】》 0. 如何学习arm? ARM的知识点很多很杂,很多同学都遇到过类似的问题,单个的汇编指令一看就懂,但是结合uboot代码后,却一段都看不下去
阅读全文
摘要:嵌入式工程师到底要不要学习ARM汇编指令? 网上搜索这个问题,答案很多,大部分的建议是不要学汇编,只要学C语言。 而一口君作为一个十几年经验的驱动工程师,个人认为,汇编语言还是需要掌握的,想要搞精、搞深,汇编和计算机系统知识是必须的。 我们来列举一些问题 系统是如何启动的? 链接C语言的函数是如何调
阅读全文
摘要:问题描述: 某个函数fun_1()是在lib内,没法修改的,在程序中大量的使用了该函数,现在想把原本fun_1失效(现在失效的方法是#define fun_1(..)),用另外一个函数fun_2(),可是fun_2最后也需要调用fun_1,上面的失效方法感觉就不行了,请问怎么做才对? 我把问题简单整
阅读全文
摘要:问题描述: 两个互斥锁,怎么形成一个死循环? 粉丝的提问,必须安排。 两个线程,两个互斥锁如何形成死锁? 程序流程图如下: 如上图所示: t0时刻,主线程创建子线程,并初始化互斥锁mutex1、mutex2; t1时刻,主线程申请到了mutex1、子线程申请到了mutex2; t2时刻,主线程和子线
阅读全文
摘要:一、1个端口号可以同时被两个进程绑定吗? 根据端口号的绑定我们分以下几种情况来讨论: 2个进程分别建立TCP server,使用同一个端口号8888 2个进程分别建立UDP server,使用同一个端口号8888 2个进程1个建立TCP server、1个建立UDP server,都使用端口号888
阅读全文
摘要:概念 Linux内核的信号量在概念和原理上和用户态的System V的IPC机制信号量是相同的,不过他绝不可能在内核之外使用,因此他和System V的IPC机制信号量毫不相干。 如果有一个任务想要获得已经被占用的信号量时,信号量会将其放入一个等待队列(它不是站在外面痴痴地等待而是将自己的名字写在任
阅读全文