上一节中我们介绍了如何在 UEFI 应用程序中调用特定的 Protocol。本节的任务是利用 UEFI 中的图形输出协议 Gop 在屏幕上输出一个特定图形。下面是我们本次的工程目录。 MyPkg ├── Application │ └── GopDrawApp │ ├── GopDrawApp.c ...
第十五章 System Timer实验 系统定时器(System Timer)是ESP32-P4芯片中的核心外设之一,专为实现精确计时和事件触发而设计。系统定时器提供高分辨率的计数功能,可生成精确的时间中断,广泛应用于操作系统的Tick计时、定时任务的触发、低功耗模式下的时间管理等场景。在本章节中, ...
在嵌入式系统的研发周期中,性能优化、安全合规与调试效率始终是开发者面临的“不可能三角”。尽管 Green Hills Software (GHS) 在自动驾驶领域声名远播,但在工业控制、医疗器械、航空航天及高端 IoT 领域,其深厚的技术积淀同样为解决复杂系统难题提供了核心支撑。 ...
本文介绍一种在 STM32CubeMX 重新生成代码时,避免自定义文件夹和文件组被删除的方法 适用于 STM32CubeMX + Keil 开发环境 创作背景 在开发过程中常常要给项目分层,但是每次从 STM32CubeMX 重新生成代码,都会删除用户手动创建的文件夹和工程组,导致需要反复配置 查阅 ...
Parasoft和Green Hills Software是两家在软件测试和嵌入式系统开发领域内知名的公司,融合双方技术,将助力开发者简化工具验证过程,确保软件符合行业安全标准,提升开发效率与软件质量。 ...
如何在 UEFI 应用程序中调用 Protocol 前面我们介绍过 Protocol 的本质是一个包含一系列函数指针的 C 语言结构体。例如: typedef struct { EFI_TEXT_RESET Reset; EFI_TEXT_OUTPUT_STRING OutputString; EF ...
在当前国产替代大趋势下,一个现实问题摆在企业面前:国产MCU / SoC性能越来越强,但开发工具链是否跟得上?好消息是:Green Hills Software已经完成对多款国产芯片平台的适配与验证。 ...
第十四章 UART实验 本章节将展示如何使用ESP32-P4的UART模块进行串口通信,包括配置UART端口、发送和接收数据等内容。通过实验,你将学到如何初始化UART、设置波特率、定义数据传输格式,以及实现ESP32-P4与外部设备之间的串行数据交互。这一章将包含详细的代码示例和配置步骤,帮助你掌 ...
我会在hal库学习中添加一些问题及解答 1.GPIO口输入输出: 1.1推挽输出(GPIO_MODE_OUTPUT_PP): 任务:将小灯点亮 同时存在P-MOS 管和N-MOS 管,两个管子互补工作,源极分别接 VDD(3.3V)和 VSS(0V 地),漏极共同连接到 I/O 引脚。 我们通过代码 ...
如何创建一个 UEFI 应用程序 在之前的文章中曾详细介绍了 EDKII 开发环境的搭建以及 OVMF 固件的编译过程。并且使用 QEMU 虚拟机来执行编译好的 OVMF 固件。我们知道在 Linux 终端中可以在命令行中执行编译好的应用程序,UEFI 也有 shell,如下图所示。我们能够在 sh ...
第十三章 EXIT实验 本章将详细介绍如何将GPIO引脚配置为外部中断输入,帮助开发者掌握GPIO中断的基础使用方法。这部分内容对处理按键输入、传感器信号等外部事件至关重要,通过中断方式可以有效提高系统的响应效率。 本章分为如下几个小节: 13.1 外部中断介绍 13.2 硬件设计 13.3 程序设 ...
第十二章 KEY实验 在嵌入式系统开发中,按键(KEY)的应用非常广泛,尤其是在用户交互和控制方面。本章教程将为大家介绍ESP32-P4的GPIO输入应用,重点讲解按键的使用方法与实现。通过本章的学习,读者将能够掌握如何通过GPIO接口读取按键状态,进而实现各种交互功能。 本章分为如下几个小节: 1 ...
LVGL 采用父子对象模型:所有 UI 元素都是 lv.obj 的子类,通过父子关系构建界面层级(屏幕 → 按钮 → 标签),这是新手最容易混淆的两个「父子 / 子类」概念。 ...
Q: 使用ml28860音频芯片,该芯片可以通过内置命令自己访问外部flash,从flash中读取音频播放 flash需烧录特定bin文件,外部flash大小512K字节,是该音频IC规定大小 暂时无法在飞书文档外展示此内容 通过此软件生成bin文件 工程采用工厂模式的思想,提供port接口,方便其 ...
第十一章 LED实验 本章教程介绍了ESP32-P4的GPIO输出应用,通过点灯例程帮助大家理解其基本功能。点灯作为经典的测试案例,能够让读者对ESP32-P4的应用有一个简单而全面的认识,为后续更复杂的项目奠定基础。 本章分为如下几个小节: 11.1 GPIO及LED介绍 11.2 硬件设计 11 ...
Cache Cache 是什么 ? Cache被称为高速缓冲存储器(cache memory),是一种小容量高速的存储器,属于存储子系统的一部分程序常使用的指令和数据。 为什么需要 CPU Cache ? CPU Cache 是为了解决 CPU 与内存速度差距而设计的高速缓存存储器,通常分为 L1、 ...
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是一种基于MCUBoot协议的二级SPI加载APP提速方案。 在开始本文内容之前,有必要先介绍一下 MCUBoot 概念,这里并不是指 Zephyr RTOS 配套的那个 OTA 方案,而是指源于恩智浦 Kinetis 系列 BootRO ...
uPyPi 平台下载和上传驱动包使用说明 一、快速安装驱动包 如果你是第一次接触 MicroPython 和 uPyPi 平台,不用担心!这份说明会从最基础的准备工作开始,一步步教你如何在树莓派 Pico2(无网络)和 Pico2W(有网络)上,从 uPyPi 平台下载并使用驱动包(以 bmp280 ...
越来越多企业开始关注更加完整的嵌入式开发工具体系,通过工具提升软件开发效率和系统稳定性。其中,来自Green Hills Software的嵌入式开发工具链,近年来在汽车电子、工业控制等领域逐渐受到关注。 ...
一、背景 1.1 为什么嵌入式场景选择 ARM 从智能家居到消费电子,从汽车领域到工业场景,嵌入式产品无处不在。嵌入式系统是以微处理器为核心、能够执行特定任务的专用硬件系统,通过对微处理器进行编程,使其适应特定应用场景的需求。根据应用场景选择合适的处理器,嵌入式产品既可实现如微波炉定时控制、智能灯定 ...