不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

2022年11月15日 #

c语言函数声明中,static inline和extern inline的区别

摘要: c语言函数声明中,static inline和extern inline的区别 “extern”关键字对于普通函数没有作用 “extern”和“static”能影响编译器对内联函数的处理 “extern”关键字对于普通函数没有作用 extern在修饰变量和函数声明时的作用是表示:这个东西不在当前的编 阅读全文

posted @ 2022-11-15 17:34 皮皮祥 阅读(169) 评论(0) 推荐(0) 编辑

static inline

摘要: 我们知道一般的函数调用都会通过call的方式来调用,hacker很容易对一个函数做手脚,如果是以inline的方式编译的,会把该函数的code拷贝到每次调用该函数的地方;而static会让生成的二进制文件中没有清晰的符号表,让逆向的人很难弄清楚逻辑 static int isValidate(int 阅读全文

posted @ 2022-11-15 17:21 皮皮祥 阅读(159) 评论(0) 推荐(0) 编辑

C语言inline关键字

摘要: 一、inline关键字的概念 inline关键字是C99标准的型关键字,其作用是将函数展开,把函数的代码复制到每一个调用处。这样调用函数的过程就可以直接执行函数代码,而不发生跳转、压栈等一般性函数操作。可以节省时间,也会提高程序的执行速度。 二、为什么需要内联函数 在C语言中,如果一些函数被频繁的调 阅读全文

posted @ 2022-11-15 17:09 皮皮祥 阅读(179) 评论(0) 推荐(0) 编辑

强制类型转换(int*)

摘要: 在vc中int* pt;pt=0xB8000000;为什么不能将0xB8000000直接看作一个地址赋给pt,而int* pt;pt=(int*)0xB8000000;就可以?并且(int*)0xB8000000这句强制类型转换应该怎么理解?为什么他一强制转换就变成地址值了呢0xB8000000本身 阅读全文

posted @ 2022-11-15 16:40 皮皮祥 阅读(350) 评论(0) 推荐(0) 编辑

一文彻底搞懂volatile用法

摘要: 一、常见说法 volatile 关键字和const对应,一样是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。当要求使用 volatile 声明的变 阅读全文

posted @ 2022-11-15 16:22 皮皮祥 阅读(376) 评论(0) 推荐(0) 编辑

linux省去驱动直接从应用层寄存器操作

摘要: 这个外设的功能已经在zynq sdk裸机下验证通过,如果这个外设没有用到中断,我们可以通过linux下映射寄存器的方法,将这个裸机下的程序直接移植到linux下使用,这样就可以省去硬件开发驱动的工作。 一,linux内存映射 二,原理图 三,linux应用层代码解析 1,pl_gpio.h #ifn 阅读全文

posted @ 2022-11-15 15:41 皮皮祥 阅读(476) 评论(0) 推荐(0) 编辑

iic地址

摘要: IIC,两根线,SCL时钟线,SDA数据线。 一个主机master,一个或多个从机slave。 主机通常就是MCU,从机会有一个地址,这个地址通常前4位是器件本身固定的,5-7位可以硬件选择,最后一位通常是WP位,一般此位低电平表示正常读写,此位高电平表示读保护,只能读。如常用的EEPROM 24C 阅读全文

posted @ 2022-11-15 12:00 皮皮祥 阅读(841) 评论(0) 推荐(0) 编辑

iic协议实操

摘要: 1. 同一 I2C bus device 之 I2C slaver address 不可一样. 2. 检查 这些 devices , 是否可以变更 I2C slaver address (hardware pin control or software register setting). 3. 若 阅读全文

posted @ 2022-11-15 11:46 皮皮祥 阅读(57) 评论(0) 推荐(0) 编辑

XIicPs_MasterSendPolled和XIicPs_MasterRecvPolled

摘要: Xilinx FPGA的IIC程序中的XIicPs_MasterSendPolled和XIicPs_MasterRecvPolled函数的使用,8位寄存器地址写入24位数据 硬件平台:黑金AX7010开发板vivado版本:Vivado 2017.4SDK平台:SDK 2017.4目的:利用FPGA 阅读全文

posted @ 2022-11-15 11:34 皮皮祥 阅读(419) 评论(0) 推荐(0) 编辑