自学嵌入式day49,arm led、蜂鸣器和bsp

根据您提供的嵌入式开发流程,以下是结构化整理后的内容:

1. SDK文件管理

  • 存放路径IMAX6ULL/SDK/
  • 使用方式
    • SDK仅需头文件(无需完整IDE)
    • 完整开发工具需额外设备(下载器/仿真器)

2. 新建工程步骤

  1. 创建目录:led_sdk
  2. 拷贝基础文件:
    cp led_c/start.S led_sdk/ cp led_c/main.c led_sdk/ cp led_c/Makefile led_sdk/
  3. 添加SDK头文件:
    cp SDK/*.h led_sdk/

3. 基于SDK的LED驱动实现

关键头文件:GPIO_Type.h(定义GPIO寄存器结构)
// 时钟初始化 void clock_init(void) { CCM->CCGR0 = 0xFFFFFFFF; /* 其余CCGRx寄存器同理 */ } // LED初始化 void led_init(void) { IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03, 0); IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO03_GPIO1_IO03, 0x10B0); GPIO1->GDIR |= (1 << 3); // 设置GPIO1_IO03为输出模式 } // LED控制函数 void led_ctrl(uint8_t state) { state ? (GPIO1->DR &= ~(1 << 3)) : (GPIO1->DR |= (1 << 3)); }

4. 模块化设计

  • LED模块
    // led.h void led_init(void); void led_on(void); void led_off(void);

5. 蜂鸣器驱动实现

// beep.c void beep_init(void) { // 配置GPIO为输出模式(以GPIO1_IO04为例) IOMUXC_SetPinMux(IOMUXC_GPIO1_IO04_GPIO1_IO04, 0); GPIO1->GDIR |= (1 << 4); } void beep_switch(bool enable) { enable ? (GPIO1->DR &= ~(1 << 4)) : (GPIO1->DR |= (1 << 4)); }

6. BSP工程目录结构

project/ ├── main.c ├── start.S imx6ull/ ├── cc.h ├── fsl_iomuxc.h // IOMUX控制器头文件 ├── MCIMX6Y2.h // 芯片寄存器定义 bsp/ ├── led/ │ ├── led.c │ └── led.h ├── beep/ │ ├── beep.c │ └── beep.h Makefile

7. 链接脚本优化

/* imx6ull.lds */ SECTIONS { . = 0x87800000; .text : { obj/start.o *(.text) } .rodata ALIGN(4) : { *(.rodata*) } .data ALIGN(4) : { *(.data) } . = ALIGN(4); __bss_start = .; .bss : { *(.bss) *(.COMMON) } __bss_end = .; }

8. Makefile递归编译示例

CROSS_COMPILE = arm-linux-gnueabihf- CC = $(CROSS_COMPILE)gcc SUBDIRS = project imx6ull bsp/led bsp/beep all: $(SUBDIRS) $(CC) -T imx6ull.lds -o led_sdk.elf $^ $(SUBDIRS): $(MAKE) -C $@

关键说明

  1. 启动代码需在start.S中清除.bss段:
    ldr r0, =__bss_start ldr r1, =__bss_end mov r2, #0 clear_bss: cmp r0, r1 strlo r2, [r0], #4 blo clear_bss
  2. 寄存器操作使用fsl_iomuxc.h中的宏定义确保可移植性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1191832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv9 detect结果可视化:图像标注输出查看方法

YOLOv9 detect结果可视化&#xff1a;图像标注输出查看方法 你训练好了YOLOv9模型&#xff0c;也跑完了推理&#xff0c;但生成的检测结果到底长什么样&#xff1f;怎么确认它真的把目标框准了&#xff1f;别急——这篇文章就是为你准备的。我们不讲复杂的原理&#xff0c;也不…

MGeo部署全流程图解:适合生产环境的地址对齐系统搭建教程

MGeo部署全流程图解&#xff1a;适合生产环境的地址对齐系统搭建教程 你是否在处理大量中文地址数据时&#xff0c;遇到过“北京市朝阳区”和“北京朝阳区”被识别为两个不同地点的问题&#xff1f;这类地址表述差异在电商、物流、城市治理等场景中极为常见&#xff0c;直接影…

PyTorch镜像支持A800吗?CUDA 11.8适配部署实战

PyTorch镜像支持A800吗&#xff1f;CUDA 11.8适配部署实战 1. 引言&#xff1a;为什么A800用户需要特别关注CUDA与PyTorch版本&#xff1f; 如果你正在使用A800显卡进行深度学习训练或模型微调&#xff0c;你可能已经遇到过这样的问题&#xff1a;官方发布的PyTorch镜像默认往…

APP广告变现数据分析:关键指标与优化策略

在移动应用商业化领域&#xff0c;数据分析已成为提升广告变现效果的核心环节。通过系统化的数据收集和分析&#xff0c;开发者可以精准定位问题、优化策略&#xff0c;实现收益最大化。以下是构建有效广告变现数据分析体系的关键要素。一、建立核心数据指标监测体系广告变现漏…

亲测Qwen3-Embedding-0.6B:跨境电商多语言检索效果惊艳

亲测Qwen3-Embedding-0.6B&#xff1a;跨境电商多语言检索效果惊艳 1. 引言&#xff1a;为什么轻量级嵌入模型正在改变搜索格局 1.1 跨境电商的多语言困境 你有没有遇到过这种情况&#xff1a;一个法国买家在搜索“chaise ergonomique”&#xff08;人体工学椅&#xff09;&…

电商商品图批量去背实战,科哥镜像高效解决方案

电商商品图批量去背实战&#xff0c;科哥镜像高效解决方案 在电商运营中&#xff0c;商品图片的质量直接影响转化率。一个常见的痛点是&#xff1a;拍摄的商品图往往带有复杂背景&#xff0c;需要花费大量时间进行抠图处理。传统方式依赖Photoshop手动操作&#xff0c;效率低、…

马年送礼佳品口碑排行榜,这些口碑好的你都知道吗?

马年&#xff0c;让爱与祝福随香而至在广东的新春佳节里&#xff0c;阖家团圆的时刻&#xff0c;总弥漫着温馨与喜悦。晨光透过窗户&#xff0c;洒在窗台的手编马驹上&#xff0c;那灵动的姿态仿佛带着生机与希望&#xff0c;也悄然勾起了我们创作一款特别香氛礼盒的初心。马上…

共聚焦显微镜、光学显微镜与测量显微镜的区分

在科研与工业检测领域&#xff0c;显微镜是核心观测工具&#xff0c;而共聚焦显微镜、光学显微镜与测量显微镜常因概念交叉易被混淆。三者虽同属显微技术范畴&#xff0c;却从原理、技术、用途维度各有界定&#xff0c;精准区分对选型应用至关重要。下文&#xff0c;光子湾科技…

GLM-TTS vs 商用模型:谁的语音更自然?

GLM-TTS vs 商用模型&#xff1a;谁的语音更自然&#xff1f; 1. 引言&#xff1a;当开源遇上商用&#xff0c;语音合成进入“拟人”时代 你有没有遇到过这样的情况&#xff1f;用AI生成的语音听起来总是冷冰冰的&#xff0c;像机器人在念稿&#xff0c;完全没有人类说话时的…

Z-Image-Turbo部署避坑:系统盘重置会丢失权重

Z-Image-Turbo部署避坑&#xff1a;系统盘重置会丢失权重 你兴冲冲地在CSDN算力平台拉起一台搭载RTX 4090D的GPU实例&#xff0c;选中「集成Z-Image-Turbo文生图大模型&#xff08;预置30G权重-开箱即用&#xff09;」镜像&#xff0c;点击部署——5分钟后终端亮起&#xff0c…

大模型评测不再难!ms-swift集成EvalScope自动打分系统

大模型评测不再难&#xff01;ms-swift集成EvalScope自动打分系统 在大模型研发和应用落地的过程中&#xff0c;一个常被忽视但至关重要的环节就是模型评测。训练再好、推理再快&#xff0c;如果无法科学、客观地衡量模型能力&#xff0c;一切优化都可能沦为“盲人摸象”。传统…

从 “可选项” 到 “生命线”:信创背景下不可变备份实施全攻略

在信创&#xff08;信息技术应用创新&#xff09;全面提速的国家战略背景下&#xff0c;党政机关、金融、能源、交通、制造等关键行业正加速推进核心信息系统国产化替代。与此同时&#xff0c;网络安全威胁持续升级&#xff0c;勒索软件攻击呈指数级增长&#xff0c;传统备份机…

ms-swift实战应用:打造专属AI助手只需一个脚本

ms-swift实战应用&#xff1a;打造专属AI助手只需一个脚本 1. 引言&#xff1a;为什么你需要一个定制化的AI助手&#xff1f; 你有没有想过&#xff0c;拥有一个完全属于自己的AI助手是什么体验&#xff1f;它不仅知道你是谁、理解你的表达习惯&#xff0c;还能在你写文案时给…

马年送礼佳品口碑排行,有实力的都在这儿了!

以香之名&#xff0c;传递别样心意——马上加油纯植物精油香氛礼盒在广东的春节&#xff0c;空气中都弥漫着喜庆与温馨。街头巷尾张灯结彩&#xff0c;人们忙着购置年货&#xff0c;阖家团圆的氛围愈发浓郁。在这热闹的节庆里&#xff0c;有一件特别的礼物正静候有缘人&#xf…

计算机毕业设计springboot大学生宿舍管理系统 基于SpringBoot的高校学生公寓智慧运营平台 SpringBoot+Vue校园寝室事务协同管理系统

计算机毕业设计springboot大学生宿舍管理系统&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。高校年年扩招&#xff0c;四人间变六人间&#xff0c;空床位、调宿、报修、晚归统计…

计算机毕业设计springboot大学生体质测试管理系统 基于SpringBoot的高校学生体测数据智慧管理平台 SpringBoot+Vue校园体育健康测评与干预系统

计算机毕业设计springboot大学生体质测试管理系统&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。体测季一到&#xff0c;上千名学生排队刷卡、纸质记录、Excel誊分、教师熬夜汇总…

MGeo模型推理过程断点续跑:异常恢复机制设计与实现

MGeo模型推理过程断点续跑&#xff1a;异常恢复机制设计与实现 1. 背景与问题引入 在实际的地址相似度匹配任务中&#xff0c;MGeo作为阿里开源的面向中文地址领域的实体对齐模型&#xff0c;展现出强大的语义理解能力。它能够精准识别不同表述但指向同一地理位置的地址对&am…

Paraformer-large多通道音频处理:立体声分离与识别实战

Paraformer-large多通道音频处理&#xff1a;立体声分离与识别实战 1. 引言&#xff1a;为什么需要多通道音频处理&#xff1f; 你有没有遇到过这样的情况&#xff1a;一段会议录音里&#xff0c;左右两个声道分别录下了不同发言人的声音&#xff0c;结果转写时所有对话混在一…

AI抠图真香!cv_unet镜像3秒出结果实测

AI抠图真香&#xff01;cv_unet镜像3秒出结果实测 你有没有遇到过这样的情况&#xff1a;急着做一张海报&#xff0c;却发现产品图背景太乱&#xff1b;想换个微信头像&#xff0c;可头发丝儿和背景粘在一起根本分不开&#xff1f;以前这种精细活儿只能靠PS手动一点点抠&#…

计算机毕业设计springboot大学生实习实训管理系统 基于SpringBoot的校内实践教学全过程管理平台 SpringBoot+Vue高校学生实习与技能训练协同系统

计算机毕业设计springboot大学生实习实训管理系统 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。每年近千名学生同时下企业、进实验室、做项目&#xff0c;纸质签到、Excel统计…