硬件与C语言的联系
由硬件联系C语言由于之前我有一定的C语言基础我这里只是将C语言和硬件联系并不重新学习只是相当于重新复习加深理解程序保存在Flash里各种指令当CPU通电后告诉CPU去读、写某些地址内存暂存内容C语言C程序就是去告诉CPU该怎么去读写内存及各个模块变量定义变量定义大小数据类型且系统分配内存空间分配地址在电路板里用电路电压表示数值1/0所以暂且认为1个晶体管表示1bit的数据不是0就是11byte字节 8bit比特当一个变量的内容超出了分配的大小就只能容纳其低分配大小位的内容有符号的变量最高位是符号位小字节序低位数据存在低地址大字节序低位数据存在高位地址原码、反码和补码原码最高位位符号位0为正数1为负数反码正数的反码原码负数的反码原码除了符号位不变其余位取反补码:正数的补码原码负数的补码反码1内存里存的数据是补码补码的意义就是统一了加法和减法方便了硬件的设置地址指针32位CPU发出32根地址信号给内存控制器内存控制器转发地址信号不一定全部转发可能只转发若干根给外设模块如内存GPIO,UART,Flash等模块这些模块根据地址信号去访问对应的单元用指针访问硬件当指针是内存地址的时候可以对相应地址的内容进行操作同理当指针是其它硬件模块的地址的时候也可以通过写入不同的值来对其状态进行操作但具体的硬件的地址和操作的值要去查关于指针类型的选择当是8位的时候用char *32位的时候用int *比如当都是40021414这个地址时char只能访问这个地址后的8位int则能访问这个地址后的32位字节对齐当数据分配的空间像上面一样排布的时候要去找score时得先根据100找出101、102、103再根据104找出104再进行组合这样cpu效率很低所以要采用字节对齐的方式提高效率对齐的规则1.单个成员成员存放的起始地址必须是这个成员的自身字节数的整数倍空位补填充字节2.嵌套结构体结构体整体当作一个成员是对齐值取它内部最大基本类型的字节3.整个结构体总大小结构体最后的总字节数必须是结构体内最大数据类型字节数的整数倍不够就在尾部填充结构体指针结构体指针指向的是结构体空间的起始空间用结构体指针来操作硬件总结在cpu看来一切都是地址指针举例操作GPIO根据GPIO模块的硬件地址偏移量设计结构体函数指针使用函数的时候实际上是引用它的某个地址我们可以用一个变量的来保存它的地址从而达到一样的效果高级用法1.函数指针作参数调用函数时栈会分配空间这样会直接跳到f所表示的函数地址去执行2.函数指针数组3.结构体中的函数指针3.结构体中的函数指针[外链图片转存中…(img-EHwymfSG-1785503118906)][外链图片转存中…(img-ye7TiOen-1785503118906)][外链图片转存中…(img-eJDzb3mA-1785503118906)]

相关新闻

从模糊到电影级细节,可灵画质增强全流程实战指南,含FFmpeg+Python自动化部署脚本

从模糊到电影级细节,可灵画质增强全流程实战指南,含FFmpeg+Python自动化部署脚本

更多请点击: https://intelliparadigm.com 第一章:可灵画质增强技术原理与演进脉络 可灵画质增强技术是一套面向多源异构视频流的端到端智能重建框架,其核心在于融合频域补偿、神经纹理合成与感知一致性约束三大技术支柱。早期版本依赖传统插…

2026/8/21 3:01:58 阅读更多 →
图吧工具箱 TubaWinUI3:装机佬的“新装备“,这次真的不一样了

图吧工具箱 TubaWinUI3:装机佬的“新装备“,这次真的不一样了

提起"图吧工具箱",老玩家脑海里浮现的可能是那个界面朴素、功能硬核、装机必备的经典工具集。而现在,它迎来了基于 WinUI 3 与 .NET 10 的彻底重构——TubaWinUI3 版本。不是换皮,是从底层到体验的全面升级。 图吧工具箱 TubaWinU…

2026/8/22 5:56:14 阅读更多 →
VIVADO时序违例实战:从原理分析到优化策略全解析

VIVADO时序违例实战:从原理分析到优化策略全解析

1. 项目概述:当VIVADO告诉你“时序不满足”在FPGA开发这条路上,跑完综合(Synthesis)看到一堆警告可能还不会太慌,但一旦进入实现(Implementation)阶段,尤其是布局布线(Pl…

2026/8/21 17:11:52 阅读更多 →

最新新闻

大语言模型在游戏开发中的应用:从Token理解到智能NPC对话系统构建

大语言模型在游戏开发中的应用:从Token理解到智能NPC对话系统构建

在实际游戏开发中,我们经常需要处理复杂的游戏逻辑、AI行为、剧情对话和资源管理。传统方法需要编写大量硬编码的规则和状态机,维护成本高且扩展性差。近年来,随着大语言模型能力的提升,开发者开始探索如何利用其强大的理解和生成…

2026/8/24 10:19:34 阅读更多 →
TRAE AI创造力大赛全流程实战指南:从AI Passport玩法到作品提交问题排查

TRAE AI创造力大赛全流程实战指南:从AI Passport玩法到作品提交问题排查

最近在探索AI工具时,发现TRAE AI平台推出的“AI Passport”和“创造力大赛”活动,为开发者、设计师和内容创作者提供了一个极具吸引力的实践舞台。然而,在实际参与过程中,不少朋友反馈遇到了诸如“没有出现审阅并接受修改的弹窗”…

2026/8/24 10:19:34 阅读更多 →
Songloft数据库层深度剖析:sqlc + goose + Unit of Work实战模式

Songloft数据库层深度剖析:sqlc + goose + Unit of Work实战模式

Songloft数据库层深度剖析:sqlc goose Unit of Work实战模式 【免费下载链接】songloft 🎵 插件化、无广告的免费音乐服务器 项目地址: https://gitcode.com/gh_mirrors/so/songloft Songloft 是一款插件化、无广告的免费音乐服务器&#xff0c…

2026/8/24 10:19:34 阅读更多 →
AI编程助手核心原理:从代码补全到编程伙伴的技术演进

AI编程助手核心原理:从代码补全到编程伙伴的技术演进

你是否曾有过这样的体验:深夜面对一个复杂的业务逻辑,苦思冥想却写不出优雅的代码;或者,当你刚在注释里写下“TODO: 这里需要处理异常”,一行完整的try-catch代码块就自动出现在光标处。这不再是科幻场景,而…

2026/8/24 10:19:34 阅读更多 →
视觉模型如何重塑图文工作流:从信息孤岛到知识连接

视觉模型如何重塑图文工作流:从信息孤岛到知识连接

上周,我像往常一样打开一个常用的内容创作工具,准备处理一批图片素材。在点击“生成”按钮后,等待我的不是熟悉的文本摘要或关键词提取,而是一段对图片内容的精准描述,甚至指出了图中一个我都没注意到的细节。那一刻&a…

2026/8/24 10:19:34 阅读更多 →
tfupdate完整入门指南:一条命令批量更新所有Terraform版本约束,彻底告别手动升级

tfupdate完整入门指南:一条命令批量更新所有Terraform版本约束,彻底告别手动升级

tfupdate完整入门指南:一条命令批量更新所有Terraform版本约束,彻底告别手动升级 【免费下载链接】tfupdate Update version constraints in your Terraform / OpenTofu configurations 项目地址: https://gitcode.com/gh_mirrors/tf/tfupdate 如…

2026/8/24 10:18:33 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →