logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

进程内存分布(详解)

由编译器自动分配释放,速度较快用来存储函数调用时的临时信息的结构,存放为运行时函数分配的局部变量函数参数返回数据返回地址等。这些局部变量等空间都会被释放程序运行过程中函数调用时参数的传递也在栈上进行,如递归调用栈当栈过多的时候,就是导致栈溢出(比如大量的递归调用或者大量的内存分配)栈是向低地址扩展的数据结构,是一块连续的内存的区域,空间有限。

文章图片
#linux#运维#服务器
超详细--树莓派基于Linux内核驱动入门开发(从会读到会写)

写驱动是为了操作IO口,实现自己的wiringpi库,跟硬件打交道。弄清楚寄存器的分组其中寄存器的0表示的是分组,目标操作的IO是pin4,由文档可知,属于寄存器分组0。volatile的使用加volatile作用是 : 1、防止编译器优化(你给的这个地址编译器可能认为不好,可能会省略,也可能会进行更改)这些寄存器变量;2、要求每次直接从寄存器里读值。由于随着程序的执行,会改变寄存器当中的数据,而

文章图片
#linux#arm
GDB调试指南(基础入门)

开发和使用Unix程序时,有时程序莫名其妙的down了,却没有任何的提示(有时候会提示core dumped),这时候可以查看一下有没有形如core.进程号的文件生成,这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考,能够很大程序帮助我们定位问题。设置断点后,以便我们更详细的跟踪断点附近程序的执行情况。通过上面的例子演示,我相信读者已经对于通过GDB调试C/

文章图片
#linux#c语言
位运算(按位与、按位或、异或、取反)以及原码、反码、补码

由于[1111_1111]+[0000_0001]=[0000_0000],所以在负数反码的基础上+1就可以解决反码中跨0的误差问题,同时不会对负数与它对应的二进制反码的同步递增产生影响,所以在反码的基础上+1就完美的解决了符号参与预算的问题,这就是补码为什么是在负数反码的基础上+1的由来。用第一位表示符号,其余位表示值。从上面的原码表中可以看见左边每增加一个二进制单位对应的真数是递减的,而右边每

文章图片
#c语言
嵌入式开发概述(树莓派介绍)

国内普遍认同的的定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功耗、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

文章图片
#arm开发
实时操作系统与非实时操作系统

实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。在上面的图中右边的任务优先级高于左边的任务,先看实时操作系统的,当优先级更高的任务2就绪的时候,即便任务1正在运行中,也必须立刻交出CPU的使用权,就跟中断一样,先执

文章图片
#stm32#单片机#嵌入式硬件
到底了