当前位置: 首页 > java >正文

静/动态库 IIC(arm) day58

十七:动态库和静态库

库:一堆可执行二进制文件的集合,由若干个.o文件归并生成

一:静态(链接)库:libxxx.a

生成一个独立的可执行程序(运行时仅需要一个文件即可) 使用方便 不需要安装

文件比较大

多个程序使用同一个静态库时,每个程序独立链接

库文件有改动则需要编译整个工程

静态库生成:
gcc -c fun.c -o fun.o 		//生成.o文件
ar  -rcv libfun.a  fun.o	//生成静态库
gcc main.c libfun.a			//链接静态库

二:动态(链接)库:libxxx.so

编译时动态链接,可执行程序不会复制库文件,仅会在内部记录库文件 的位置等链接信息。

程序执行时,需要可执行文件及库文件同时存在,并且可执行文件能找 到库文件。

使用:

​ 1.将libxxx.so拷贝到系统PATH目录下

​ 或者

​ 2.将libxxx.so所在的 路径添加到系统PATH

生成的可执行程序较小

多个程序使用同一个库,库只需要存在一份

库文件有改动时,只需要单独更新库即可(不需要全更改),可执行程序不需要重新编译

动态库生成:
gcc -fPIC -shared fun.c fun1.c -o libfun.so 程序编译:
gcc  main.c  -lfun     //libfun.so必须存在于系统PATH下
gcc  main.c  -lfun  -L  ./      //指定链接路径
gcc  mian.c libfun.so -o dmain	//链接到main.c文件
./dmain							//运行库

十三:IIC

一:基础概念

SDA和SCL线都为双向的。

配制IIC总线:可以编程ICCON寄存器中的4位预分频器值来控制串行时(SCL)的频率。IIC总线接口地址被储存在IC总线地址(IICADD)寄存器中。(默认IIC总线接口地址包含一个未知值。)

二:代码

#include <s3c2440.h>
#include "iic.h"void iic_init(void)
{//ÅäÖÃGPE14¡¢15Òý½Å¹¦ÄÜΪIICSCL¡¢SDAGPECON &= ~(0xf << 28);GPECON |= (0xa << 28);IICCON = (1 << 7) | (1 << 6) | (1 << 5);
}unsigned char iic_write(unsigned char addr, unsigned char * data, unsigned char len)
{unsigned char i = 0;IICDS = addr;IICSTAT = 0xf0;IICCON &= ~(1 << 4);while(!(IICCON & (1 << 4)));for(i = 0; i < len; i++){IICDS = data[i];	IICCON &= ~(1 << 4);while(!(IICCON & (1 << 4)));}IICSTAT = 0xd0;IICCON &= ~(1 << 4);delay(100);
}
#if 0
unsigned char iic_read(unsigned char addr, unsigned char * data, unsigned char len)
{unsigned char i = 0;IICDS = addr;IICSTAT = 0xb0;IICCON &= ~(1 << 4);while(!(IICCON & (1 << 4)));for(i = 0; i < len; i++){data[i] = IICDS;	IICCON &= ~(1 << 4);while(!(IICCON & (1 << 4)));}IICSTAT = 0x90;IICCON &= ~(1 << 4);delay(100);
}
#endif
unsigned char iic_read(unsigned char addr,unsigned char * data,unsigned char len)
{unsigned char i = 0;IICDS = addr;	//addr write IICDSIICSTAT |= (0xb0 << 0);	//0xf0 write IICSTAT// send IICDS datewhile(!(IICCON &(1 << 4)));for(i = 0;i<len;i++){data[i] = IICDS;IICCON &= ~(1 << 4);while(!(IICCON & (1 << 4)));}               IICSTAT |= (0x90 << 0);IICCON &= ~(1 << 4);delay(100);					
}
http://www.xdnf.cn/news/18273.html

相关文章:

  • 医疗问答应用:UniApp + Node.js + DeepSeek API
  • Objective-C 版本的 LiveEventBus 效果
  • 直流无刷(BLDC)电机、单相直流无刷电机、三相直流无刷电机、单相直流无刷电机驱动芯片
  • 齐次线性方程组最小二乘解
  • 从零开始学AI——13
  • Docker复杂安装--最详细的MySQL主从复制与Redis集群安装、主从复制、主从扩容主从缩容实战版
  • java线程池相关知识
  • XR(AR/VR/MR)芯片方案,Soc VS “MCU+协处理器”?
  • 【动态规划、dp】P4933 大师
  • pnpm : 无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。
  • C++之多态(从0到1的突破)
  • Python如何将两个列表转化为一个字典
  • 基于STM32的APP遥控视频水泵小车设计
  • Codeforces MIN = GCD
  • Python爬虫实战:研究dark-fantasy,构建奇幻文学数据采集分析系统
  • BM25 vs TF-IDF:经典文本检索方法的对比
  • 【39】OpenCV C++实战篇——直线拟合、直线测距、平行线段测距;(边缘检测,剔除噪点,轮廓检测,渐进概率霍夫直线)
  • Django管理后台结合剪映实现课件视频生成应用
  • MySQL架构
  • MySQL实战45讲 24-25
  • hadoop技术栈(九)Hbase替代方案
  • Linux 进程间通信(IPC):信号、共享内存
  • Vue3 el-table实现 将子表字段动态显示在主表行尾
  • MySQL 三大日志:redo log、undo log、binlog 详解
  • 在职老D渗透日记day21:sqli-labs靶场通关(第27a关)get联合注入 过滤select和union “闭合
  • 趣谈设计模式之策略模式-比特咖啡给你一杯满满的情绪价值,让您在数字世界里”畅饮“
  • 基于VLM 的机器人操作视觉-语言-动作模型:综述 2
  • 选项式api和组合式api
  • 如何将Date类型的数据转换为LocalDateTime类型
  • Git的初步学习