0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

电子发烧友网>嵌入式技术>

嵌入式技术

权威的嵌入式系统、嵌入式技术和嵌入式开发频道,涉及嵌入式设计应用、单片机与SoC、编程语言及工具、嵌入式系统软硬件调试及优化、嵌入式操作系统等资讯和嵌入式技术方案,包括嵌入式接口/总线/驱动、嵌入式软件/开发板、实时应用开发、嵌入式联网技术、ARM等领域,是嵌入式工程师最好的学习平台。
什么叫多任务系统 FreeRTOS任务管理

什么叫多任务系统 FreeRTOS任务管理

回想一下我们以前在使用 51、AVR、STM32 单片机裸机(未使用系统)的时候一般都是在main 函数里面用while(1)做一个大循环来完成所有的处理,即应用程序是一个无限的循环,循环中调用相应的...

2023-09-28 标签:cpuFreeRTOS单片机单片机嵌入式应用程序 78

qemu-riscv在scode的gdb调试步骤

qemu-riscv在scode的gdb调试步骤

qemu支持gdb调试,只需要在命令中添加 -s -S两个参数即可,在bsp/qemu-riscv下已经有了qemu-dbg.sh,且加入了该参数...

2023-09-28 标签:ARM芯片GDB调试qemuShell 252

MICROSAR 网络安全技术详解

MICROSAR 网络安全技术详解

非对称密码系统基于一方拥有的一对密钥。密钥对由公钥和私钥组成。 上公钥可以为公众所知。私钥永远不能共享。...

2023-09-28 标签:安全通信密钥网络安全 299

RyanMqtt使用介绍和示例代码(2)

RyanMqtt使用介绍和示例代码(2)

先测试 “$” 通配符,”$”比较特殊,应用不能使用”$”开头的系统主题!...

2023-09-28 标签:MQTT协议回调函数处理器接收机 486

RyanMqtt使用介绍和示例代码(1)

RyanMqtt使用介绍和示例代码(1)

此步骤不做过多解释,是lwip就用lwip,是at设备就用at_socket。推荐所有平台都使用SAL框架(RyanMqtt软件包会自动使能)。...

2023-09-28 标签:LwIP协议栈RT-ThreadSTM32STM32F401上位机上位机代码单片机单片机回调函数硬件设计 478

T113开发平台修改分区办法

T113开发平台修改分区办法

T113开发平台修改分区办法...

2023-09-28 标签:arm开发平台镜像 75

RR轮询调度?Verilog是如何实现RR轮询调度的?

RR轮询调度?Verilog是如何实现RR轮询调度的?

在设计中,我们经常会用到RR(Round-Robin,RR)轮询调度,用于保证在一个时间段内的多个请求信号都能得到公平响应。...

2023-09-28 标签:IC设计Verilog语言寄存器状态机锁存器 681

如何选择STM32MP1系列核心板和开发板

如何选择STM32MP1系列核心板和开发板

一款合适的处理器,是每个工程师在开发设计前期调研必须面对的难题。而如何挑选一款符合产品开发的处理器呢?今天我们就以ST公司的STM32MP1系列处理器进行分析比较。ST公司目前已经发布了...

2023-09-28 标签:STM32开发板核心板芯片 138

【蓝桥杯嵌入式】第五章 LCD

【蓝桥杯嵌入式】第五章 LCD

第一节硬件解读蓝桥杯嵌入式的LCD并没有提供原理图,所以也没有什么可以讲解的,如果有需要,请联系我们微信公众号管理员,谢谢。微信搜索:撞上电子微信公众号即可。第二节CubeMX配置本...

2023-09-28 标签:lcd嵌入式硬件 75

电磁脉冲与高功率微波的差异在哪?

电磁脉冲与高功率微波的差异在哪?

在讨论强电磁环境效应时,电磁脉冲和高功率微波是两种重要的强电磁形式...

2023-09-28 标签:EMP功率放大器波形发生器电磁脉冲衰减器 311

STM32 TIMER+DMA输出PWM异常案例的问题解析

STM32 TIMER+DMA输出PWM异常案例的问题解析

有人使用STM32U575的TIMER加上DMA做PWM输出。具体就是利用某TIMER的一个通道的比较事件触发DMA,通过DMA修改CCR值来实现指定占空比的PWM输出。...

2023-09-28 标签:HAL库PWMPWM输出STM32定时器寄存器 882

基于Vitis AI的ADAS目标识别

基于Vitis AI的ADAS目标识别

Vitis™ AI开发环境可在赛灵思硬件平台上加速 AI 推断,包括边缘器件和 Alveo™ 加速器卡。此环境由经过最优化的 IP 核、工具、库、模型和设计示例组成。其设计以高效和易用为核心,旨在通过...

2023-09-28 标签:adasAIVitis开发环境 1042

Linux为什么中断不允许休眠

Linux 为什么中断不允许休眠? 所谓的睡眠,就是调用 schedule 让出 CPU,调度器选择另外个进程继续执行,这个过程涉及进程栈空间的切换。 1、假如中断上下文中调用 schedule ,此时获取的 stru...

2023-09-27 标签:cpuLinux中断 274

Linux中断子系统相关节点

Linux中断子系统相关节点

Linux 中断相关节点 /proc/interrupts cat 这个节点,会打印系统中所有的中断信息,如果是多核CPU,每个核都会打印出来。 包括每个中断的名字、中断号 IRQ number、每个中断的触发次数、在哪个CPU核...

2023-09-27 标签:cpuLinux内核子系统 255

Linux中pinctrl操作GPIO只需要几步

pinctrl 子系统 API pinctrl 子系统的 API 有很多,对于驱动工程师来说,pinctrl 操作一个 GPIO 只需要三步: 1、devm_pinctrl_get2、pinctrl_lookup_state3、pinctrl_select_state 在 Linux 中,加 devm_ 开头的函数,代表...

2023-09-27 标签:APIGPIOLinux子系统 281

gpio子系统API详解

gpio子系统API详解

gpio 子系统 API gpio 子系统中操作一个 GPIO 需要如下几步: 1、of_find_compatible_node2、of_get_named_gpio3、gpio_request4、控制gpio(gpio_direction_input、gpio_direction_output……)5、gpio_free 1)of_find_compatible_node...

2023-09-27 标签:APILinux内核 229

Banana Pi BPI-R3 Mini 介绍:一款小巧而强大的嵌入式路由器板

Banana Pi BPI-R3 Mini 介绍:一款小巧而强大的嵌入式路由器板

Banana Pi BPI-R3 Mini 最引人注目的特点之一是其紧凑的设计。该路由器足够小,可以放在手中,但功能却足够强大。在考虑计算能力时,这使得该板成为那些希望在小型办公室或家庭环境中创建高...

2023-09-27 标签:banana piOpenWrt嵌入式路由器 523

什么是收音机电路的失真、线性失真和非线性失真?

什么是收音机电路的失真、线性失真和非线性失真?

输入信号与输出信号不相同就叫作失真,简单地说就是输出信号的波形不像输入信号的波形,两者模样不一样。...

2023-09-27 标签:放大电路正弦波输出电压非线性失真 201

Linux可用的事件选择器编码

Linux可用的事件选择器编码

事件选择器编码表 20 描述了可用的事件选择器编码。根据 mhpmeventX[7:0]中编码的事件类字段,将事件分类为类。可以通过为给定事件类别设置相应的事件掩码位来对一个或多个事件进行编程。...

2023-09-27 标签:Linux内核编码选择器 167

事件选择器寄存器是什么

事件选择器寄存器是什么

事件选择器寄存器为了控制要计数的事件类型,事件选择器 CSR mhpmevent3 和 mhpmevent4 用于对相应的事件计数器进行编程。这些事件选择器 CSR 是 64 位 WARL 寄存器。 事件选择器分为三个字段;低...

2023-09-27 标签:Linux内核寄存器选择器 140

SiFive U64的HPM是什么

对于性能分析,通常我们会使用Perf工具。而perf中的硬件事件,则需要硬件的支持——性能监视单元PMU。RISC-V u64内核支持PMU,使得我们可以通过perf来统计程序运行所产生的cycle、cache hit、cache...

2023-09-27 标签:HMPLinuxsifive内核 129

内核调试工具printkprintk的输出格式

很多内核开发者喜欢的调试工具是printk,在Linux内核中,使用printk()函数来打印信息,它与C库的printf()函数类似。 printk()与printf()的一个重要区别是: printk()提供输出等级 。内核会根据这个等级...

2023-09-27 标签:Linux内核函数 120

Linux内核pr_xx()函数封装

pr_xx( )封装 在使用printk的时候需要手动添加输出等级KERN_INFO、KERN_WARNING等,这样还是有些麻烦。因此,Linux内核也对printk进行了进一步的封装。 Linux内核将每一个输出等级封装为pr_xx()函数,例如...

2023-09-27 标签:Linux内核函数 87

Linux内核中如何修改printk等级

printk等级 路径: include/linux/kern_levels.h # define KERN_EMERG KERN_SOH "0" /* 最高输出等级,系统可能处于不可用的状态 */ # define KERN_ALERT KERN_SOH "1" /* 紧急和理科需要处理的输出 */ # define KERN_CRIT KERN_SOH...

2023-09-27 标签:Linux内核系统 85

Linux内核基础:动态输出使用

Linux内核基础:动态输出使用

动态输出使用 打开svcsock.c文件中所有的动态输出语句 # echo 'file svcsock.c +p' > /sys/ kernel /debug/ dynamic_debug/control 打开usbcore模块中所有的动态输出语句 # echo 'module usbcore +p' > /sys/ kernel /debug/ dynamic_...

2023-09-27 标签:Linux内核输出驱动 87

Linux内核动态输出调试

Linux内核动态输出调试

动态输出可以动态选择打开某个内核子系统的输出,可以有选择性地打开某些模块的输出。 配置内核编译选项要使用动态输出,必须在配置内核时打开CONFIG_DYNAMIC_DEBUG宏。内核代码里使用大量...

2023-09-27 标签:Linux内核子系统 91

Linux内核实际项目中的死锁

Linux内核实际项目中的死锁

实际项目中的死锁 下面的例子要复杂一些,这是从实际项目中抽取出来的死锁,更具有代表性。 # include # include # include # include # include # include static DEFINE_MUTEX (mutex_a) ; static struct delayed_work dela...

2023-09-27 标签:Linux内核函数死锁 75

Linux内核中简单的AB-BA死锁案例

Linux内核中简单的AB-BA死锁案例

简单的AB-BA死锁案例 下面举一个简单的AB-BA死锁的例子: # include # include # include static DEFINE_SPINLOCK (hack_spinA) ; static DEFINE_SPINLOCK (hack_spinB) ; void hack_spinAB ( void ) { printk ( "hack_lockdep:A- >Bn" ); spin_loc...

2023-09-27 标签:Linux内核死锁 78

Linux内核死锁lockdep功能

Linux内核死锁lockdep功能

死锁是指两个或多个进程因争夺资源而造成的互相等待的现象,如进程A需要资源X,进程B需要资源Y,而双方都掌握对方所需要的资源,且都不释放,这会导致死锁。 在内核开发中,时常要考虑...

2023-09-27 标签:Linux内核死锁 82

armv7 generic timer使用笔记

armv7 generic timer使用笔记

armv7-A架构中每个CPU核心都包含自己的私有定时器,所有cpu的定时器共享一个System counter, System counter负责产生计数,传递到每个核心的私有定时器...

2023-09-27 标签:ARM处理器RT-Thread定时器控制寄存器计数器 505

编辑推荐厂商产品技术软件/工具OS/语言教程专题