嵌入式C基础知识(7)
是否可以传递任何参数并从 ISR 返回值
不可以。不能传递任何参数并从 ISR 返回值。 ISR 不返回任何内容,并且不允许传递任何参数。 当硬件或软件事件发生时调用 ISR,而代码不会调用它。 这就是为什么不向 ISR 传递参数的原因。 由于代码不调用 ISR,因此没有调用代码来读取 ISR 的返回值。 这就是 ISR 不返回任何值的原因。
extern 关键字的作用
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明此函数/变量是在别处定义,但是要再此处引用。注意extern不能用来修饰局部变量。具体应用示例:
在a.c文件中
unsignedcharkey;voidfunc(void){...}
在main.c文件中
#include"a.h"
externunsignedcharkey;externvoidfunc(void);intmain(){if(key=="a")func();return0;}
局部变量能否和全局变量重名?
能,局部会屏蔽全局。
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
如何理解中断延迟
中断延迟是处理器响应中断请求所需的时钟周期数。 这个时钟周期数是中断请求的断言和中断处理程序的第一条指令之间的计数。
Cortex-M 处理器系列的中断延迟:
Cortex-M 处理器的中断延迟非常低。 下表显示了具有零等待状态存储器系统的 Cortex-M 处理器的中断延迟。
处理器 | 零等待状态内存的周期 |
Cortex-M0 | 16 |
Cortex-M0+ | 15 |
Cortex-M3 | 12 |
Cortex-M4 | 12 |
Cortex-M7 | 12 |
C语言中的声明和定义
函数和变量的声明不会分配内存,但定义会分配相应的内存空间。
函数和变量的声明可以有很多次,但定义只有一次。
函数的定义和声明方式都是默认extern的,即函数默认是全局的。可以采用static实现对函数的隐藏。
变量的声明和定义默认都是局部的,在当前编译单元或者文件中可用。
引用与指针有什么区别?
答:
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
如何减少中断延迟?
有几种方法可以减少 Embedded C 中的中断延迟。中断延迟取决于许多因素。 以下是一些因素的列表:
平台和中断控制器
CPU时钟速度
定时器频率
缓存配置
应用程序等
因此,可以使用正确选择平台和处理器来轻松降低中断延迟。还可以通过缩短 ISR 并避免在 ISR 中调用函数来减少中断延迟。
C语言的变量
(1) C语言变量的基本类型有哪些?
五种基本类型:char, int, float, double, void. void是空类型,一般用于限制函数的返回和参数以及用来定义空指针。
(2) 局部变量和全局变量区别?
- 生存周期不同:局部变量存在于模块中,生存期从模块开始到结束。
- 存储位置不同:局部变量保存在栈空间内,栈地址是不固定的,由编译器自动分配和释放,全局变量保存在静态存储区的数据段中。
(3) 局部变量和全局变量是否可以重名?
可以,但是局部变量会屏蔽全局变量,如果在程序中使用因为重名被屏蔽的全局变量,需要在变量前加::。
inta=10;intmain(){inta=9;printf("%d\n",a);//输出局部变量
printf("%d\n",::a);//输出全局变量
return0;}
相关文章:
嵌入式C基础知识(7)
是否可以传递任何参数并从 ISR 返回值不可以。不能传递任何参数并从 ISR 返回值。 ISR 不返回任何内容,并且不允许传递任何参数。 当硬件或软件事件发生时调用 ISR,而代码不会调用它。 这就是为什么不向 ISR 传递参数的原因。 由于代码不调用 ISR&#x…...
大数据系列之:安装pulsar详细步骤
大数据系列之:安装pulsar详细步骤一、Pulsar版本和jdk对应关系二、安装JDK三、设置和激活jdk环境变量四、下载和解压Pulsar五、查看Pulsar目录六、启动Pulsar standalone cluster七、创建Kafka Topic八、往Topic写入数据九、消费pulsar的Topic一、Pulsar版本和jdk对…...
色彩-基础理论
颜色三大指标 色相 色相是颜色的一个属性,只有黑白灰没有色相这个属性(那银灰色是什么?) 颜色的相貌,指的也是给颜色一个名字 例如:暗红、酒红、土黄、墨绿 饱和度 颜色的鲜艳程度 纯度 饱和度主要取决于含色成分和消色成分&a…...
1629_MIT_6.828_xv6_chapter1操作系统的组织
全部学习汇总:GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 这一次整理一下操作系统组织相关的知识,主要还是xv6教学操作系统相关的知识。当然,很多知识在这类技术领域是通用的。 1. 操作系统的主要功能…...
基于Golang哈希算法监控配置文件变化
SHA(secure hashing algorithm)表示安全哈希算法.SHA是MD5的修正版本,用于数据摘要和认证。哈希和加密类似,唯一区别是哈希是单项的,即哈希后的数据无法解密。SHA有不同的算法,主要包括SHA-1, SHA-2, SHA-256, SHA-512, SHA-224, …...
关于一笔画问题的一些思考(欧拉路Fleury算法、逐步插入回路法、以及另一种可能的解法)
前言这是一个经典的图论问题了最近复习离散的时候又恰好看到了,发现自己以前的解法似乎有点bug然后开始出反例卡自己,结果发现卡不掉?然后再好好想了想,发现这个看起来有问题的做法可能确实没问题。注意:欧拉路、欧拉回…...
vlookup怎么用详细步骤,看这一篇就够了
1、vlookup函数:使用方法 以下便是vlookup函数,功能、语法和参数用法: excel函数vlookup 2、vlookup函数:查询参数 首先,选中F2单元格,然后在编辑栏输入函数公式:VLOOKUP(E2,B&…...
雅思经验(9)之小作文常用词汇总结
写作:关于趋势的上升和下降在小作文中,真的是非常常见的,所以还是要积累一下。下面给出了很多词,但是在雅思写作中并不是词越丰富,分数就越高的。雅思写作强调的是准确性:在合适的地方用合适的词和句法。不…...
【Python语言基础】——Python NumPy 数组创建
Python语言基础——Python NumPy 数组创建 文章目录 Python语言基础——Python NumPy 数组创建一、Python NumPy 数组创建一、Python NumPy 数组创建 创建 NumPy ndarray 对象 NumPy 用于处理数组。 NumPy 中的数组对象称为 ndarray。 我们可以使用 array() 函数创建一个 NumP…...
【大数据】Hadoop-Kms 安装及相关详细配置,看完你就会了
简介 Hadoop KMS是基于Hadoop的KeyProvider API的加密密钥管理服务器,它提供了使用REST API通过HTTP进行通信的客户端和服务器组件。 客户端是一个KeyProvider实现,使用KMS HTTP REST API与KMS交互。 KMS及其客户端具有内置的安全性,它们支…...
SpringCloud分布式框架
SpringCloud分布式框架 SpringCloud框架 Spring Cloud 是一个用于创建分布式系统的开源框架。它基于 Spring Boot 和 Spring Framework,提供了一整套关于分布式系统的工具和技术。 Spring Cloud 是微服务架构的一种实现方式,它提供了一整套完整的技术…...
Csss属性display,visibility区别,对渲染页面的影响
display: none; 与 visibility: hidden; 的区别 相同: 它们都能让元素不可见 区别:display:none;会让元素完全从渲染树中消失,渲染的时候不占据任何空间; visibility: hidden;不会让元素从渲染树消失,渲染时元素继续…...
怎么给笔记本电脑外接两台显示器?
我们在办公室会看见不少同事的电脑不止一台显示器,多屏确实可以提高工作效率。有的游戏党也会选择给电脑外接显示器,带来绝佳的体验。 不过要怎么把将外部显示器连接到笔记本电脑上?驱动人生在这里教给大家给笔记本外接显示器的做法。 一、…...
生成树协议 — STP
目录 一、环路的出现 1、广播风暴: 2、MAC地址表翻滚: 二、生成树 1、定义: 2、生成树使用的算法: 三、802.1D 1、BPDU: 2、TCN—拓扑变更消息(也是BPDU): 3、部分名词&am…...
git必会的知识点
注:本文参考https://www.liaoxuefeng.com/wiki/896043488029600 原文非常值得一读,作者学识渊博,补充了很多有意思的知识。我仅仅是拾人牙慧。 git是最先进的分布式版本控制系统。 版本控制系统——自动记录系统中文件的改动情况࿰…...
【hello, world】计算机系统漫游
文章目录hello程序信息就是位 上下文程序被其他程序翻译成不同的格式预处理阶段编译阶段汇编阶段链接阶段了解编译系统如何工作是大有益处的优化程序性能理解链接时出现的错误避免安全漏洞处理器读并解释储存在内存中的指令系统的硬件组成总线I/O设备主存处理器运行hello程序高…...
1. SpringMVC 简介
文章目录1. SpringMVC 概述2. SpringMVC 入门案例2.1 入门案例2.2 入门案例工作流程3. bean 加载控制4. PostMan 工具1. SpringMVC 概述 SpringMVC 与 Servlet 功能等同,均属于 Web 层开发技术。SpringMVC 是 Spring 框架的一部分。 对于 SpringMVC,主…...
《解谜三星堆:开启中华文明之门》-范勇 笔记
甲篇 应重视民间流传的疑似三星堆的文物,对其展开充分的研究,以发现更多关于三星堆的秘密,并且避免“敦煌窘境”,让我国的三星堆学术研究处于世界领先地位!(书中就讲到了在民间首次发现了圆形玉器…...
锐捷(十四)mpls vxn optionc的关键问题所在和具体问题分析
用锐捷的设备搭建mpls vxn optionc的基础版和带RR的版本,在控制平面和转发平免上分析mpls vxn optionc的关键问题所在和具体问题分析。一 基础mpls vxn optionc:核心:两pe之间之间建立MP EBGP邻居,从而直接传递路由解放了ASBR。关…...
Python语言零基础入门教程(十四)
Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。 Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。 时间间隔是以秒为单位的浮点小数。 每个时间戳都以自从1970年1月1日午夜(历元&…...
【YOLOv11工业级实战】35. DeepStream集成实战——构建高并发视频分析管道
摘要:在智慧交通、智慧工地等工业场景中,多路高清视频的实时分析面临高并发、低延迟、低资源占用的核心诉求。传统PyTorch逐帧推理方案因CPU解码瓶颈、内存拷贝频繁等问题,无法满足500路以上视频流的并发处理需求。本文以NVIDIA DeepStream框架为核心,结合YOLOv11目标检测模…...
YOLOv5在边缘设备上部署实战:从Jetson Nano到树莓派,实现实时路面障碍检测
YOLOv5边缘计算部署实战:从Jetson Nano到树莓派的高性能路面检测方案 当自动驾驶小车需要识别前方突然出现的石块,或是智慧路侧单元要实时监控道路异常时,边缘设备上的AI推理能力就成为关键。本文将带您深入探索如何将YOLOv5模型部署到Jetson…...
从SWF中提取加密通信协议:JPEXS Free Flash Decompiler安全分析报告
从SWF中提取加密通信协议:JPEXS Free Flash Decompiler安全分析报告 【免费下载链接】jpexs-decompiler JPEXS Free Flash Decompiler 项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler 在网络安全分析领域,SWF(Shockwa…...
SDMatte Web端体验优化:首屏加载速度与模型预热机制说明
SDMatte Web端体验优化:首屏加载速度与模型预热机制说明 1. 引言 在电商、设计、内容创作等领域,高质量的图像抠图已经成为刚需。SDMatte作为一款专注于复杂边缘和透明物体处理的AI抠图工具,其Web端体验直接影响用户的使用感受。本文将详细…...
OpenClaw环境隔离方案:ollama-QwQ-32B镜像与本地Python虚拟环境整合
OpenClaw环境隔离方案:ollama-QwQ-32B镜像与本地Python虚拟环境整合 1. 为什么需要环境隔离 上周我在尝试将OpenClaw接入本地部署的ollama-QwQ-32B模型时,遇到了一个棘手的问题:我的开发环境突然崩溃了。事后排查发现,是OpenCla…...
水下机器人导航的‘感官进化’:从纯视觉VIO到声光惯压融合的SVIn2系统拆解
水下机器人导航的‘感官进化’:从纯视觉VIO到声光惯压融合的SVIn2系统拆解 当一台水下机器人潜入浑浊的湖泊执行管道巡检任务时,它的视觉传感器突然失效——悬浮颗粒使画面变成乳白色噪点,而水流扰动让惯性测量单元(IMU)数据充满噪声。这正是…...
当Navicat密码遗忘时:开源解密工具如何重建数据库连接通路
当Navicat密码遗忘时:开源解密工具如何重建数据库连接通路 【免费下载链接】navicat_password_decrypt 忘记navicat密码时,此工具可以帮您查看密码 项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt 数据库连接中断的三大痛点场景 场…...
Python异常处理最佳实践:从原理到实践
Python异常处理最佳实践:从原理到实践 1. 背景与动机 在Python编程中,异常处理是一个重要的编程实践。良好的异常处理可以使程序更加健壮,提高代码的可维护性和可读性。然而,许多开发者在处理异常时存在一些常见的问题,…...
高效获取数字资源工具:Internet Archive下载器全方位应用指南
高效获取数字资源工具:Internet Archive下载器全方位应用指南 【免费下载链接】internet_archive_downloader A chrome/firefox extension that download books from Internet Archive(archive.org) and HathiTrust Digital Library (hathitrust.org) 项目地址: h…...
收藏!2026非科班/转行小白必看:3步切入AI大模型,月薪30w+实战路径
2026年的职场赛道,AI大模型依旧是绝对的“黄金风口”。 最新行业报告显示,AI相关岗位需求逆势增长37%,薪资领跑全行业,大厂校招起薪普遍突破25k。但一个残酷的现实是: 太多非科班、半路转行的程序员,还在门…...
