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

静/动态库 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.dtcms.com/a/340426.html

相关文章:

  • 机器学习——网格搜索(GridSearchCV)超参数优化
  • Linux + arm 内存屏障
  • 商用厨房物联网智能化解决方案——打造环保、高效、安全的智慧餐饮新生态
  • C语言基础:(二十)自定义类型:结构体
  • 领码方案:通用物联网数据采集低代码集成平台——万物智联时代的黄金钥匙
  • 【Grafana】grafana-image-renderer配合python脚本实现仪表盘导出pdf
  • 车载软件架构 --- 赢得汽车软件开发竞赛
  • MySQL事务及原理详解
  • YAML格式笔记
  • SQL面试题及详细答案150道(41-60) --- 条件查询与分组篇
  • 【自记】Power BI 中 ALL、ALLSELECTED、ALLEXCEPT、ALLNOBLANKROW 的区别说明
  • 自学嵌入式第二十三天:数据结构(3)-双链表
  • SQL四大类命令(DQL、DML、DDL、DCL)
  • 第1课_Rust基础入门
  • Rust系统编程:从入门到实战的蜕变之旅
  • MySQL 数据与表结构导出 Excel 技术文档
  • 基础笔记8.20
  • Spring Cloud Gateway 负载均衡全面指南
  • 甘特图-项目可视化引擎|Highcharts.js 模块特征
  • Linux I/O 多路复用实战:Select/Poll 编程指南
  • Java主流框架全解析:从企业级开发到云原生
  • 通过自动化本地计算磁盘与块存储卷加密保护数据安全
  • 819 机器学习-决策树2
  • 学习threejs,打造宇宙星云背景
  • 芯科科技即将重磅亮相IOTE 2025深圳物联网展,以全面的无线技术及生态覆盖赋能万物智联
  • CentOS 系统 Java 开发测试环境搭建手册
  • CentOS 7.6安装崖山23.4.1.102企业版踩坑实战记录(单机)
  • Git 新手完全指南(二):在vscode中使用git
  • Linux 文本处理与 Shell 编程笔记:正则表达式、sed、awk 与变量脚本
  • CentOS 7/8 搭建 Samba 文件共享服务并与Windows无缝集成