硬件-DAY08(中斷)

一、蜂鳴器學習(中斷)

二、BSP工程管理

利用BSP工程管理,使文檔顯示不雜亂;

?將這些文件分為4類,并保存到4個不同的文件夾里。

????????首先在新的工程文件夾里創建一個之后我們編寫的類似led驅動,clk驅動等等外設驅動程序都放在這文件夾里面,創建名為bsp文件夾;

??再創建project文件夾,存放 start.s和 main.c 文件,也就是應用文件;

? ? ? ? 一個imx6ull文件夾,用來保存NXP的相關庫cc.h、fsl_common.h、fsl_iomuxch和 MCIMX6Y2.h 這四個文件;

????????最后再創建一個obj文件夾,用來存放編譯生成的.o?文件。

三、 按鍵練習

代碼實現(GPIO):

四、中斷

4.1 GIC控制器(通用中斷控制器)

VFIQ/VIRQ中V指虛擬化的;

多數情況下我們使用IRQ:

作用:

作用是中斷優先級排序;
中斷屏蔽的控制;
? ? ? ? GIC控制器(v2版本)最多處理8個內核;最多有1020個中斷源:

SGI ?(軟件中斷):( 0 - 15 ),由軟件產生的中斷;用于實現多核通信
PPIs(私有中斷):(16 - 31),每個核都有自己獨有的中斷;這里的私有指內核
SPI(共享中斷):(32-1019),外設中斷,如定時器、外部中斷、串口中斷等。

? ? ? ? 實際用到的只有(32-159)128個,這128是imx6ull所支持的

? ? ? ? PS:GIC也可以屏蔽不需要的中斷
? ? ? ? ? ? ? ? V2版本的GIC不在ARM內部,V3、V4版本的是64位

4.2?異常向量表

????????異常向量表重映射(__set_VBAR)是指在處理器發生異常時,通過改變異常向量表的物理地址與邏輯地址之間的映射關系

????????目的:確保系統能夠正確響應和處理異常。

異常狀態返回地址偏移量:當異常狀態發生以后,返回地址和lr中保留的地址偏移量

4.3 協處理器

????????協處理器:用于減輕系統微處理器特定處理任務的芯片;

? ? ? ? cortex A7 共16個協處理器,CP0~CP15

????????每個soc中都有一個kernel,也是處理器,有時候處理不過來了,ARM就再設計了一堆協處理器,我們大多數情況下只用P15

4.3.1 mcr指令與mrc指令?

用mcr與mrc來訪問協處理器;

????????eg:mrc p15, 0, r0, c0, c0, 0(mrc指令讀取MIDR(主ID)寄存器,讀出來的結果放入了寄存器R0中)

mcr寫入協處理器;

mrc讀取協處理器;

? ? ? ? CPSR分為I位(bit[7](0不屏蔽? 1屏蔽))、F位(bit[6] 0不屏蔽 1屏蔽)

協處理器編號p0-p15;

讀取出來的寄存器內容:

SCTLR寄存器:

CPS指令

????????這里的 effect 分為倆個bit[7](IE使能 cpsie(0)、ID失能cpsid(1)),使用了effect的話就不能省略iflags,i位指irq,f位指frq

PS:在匯編中調main.c中的函數時,要先保護現場

? ? ? ? GIC首地址不確定,由P15保存

獲取中斷號,并記錄?

? ? ? ? C_IAR 讀寫中斷? ? ? ? ? ? ? ? ? C_EOIR? 寫回去

GPIOx_ICR? ? ? ? //GPIO中的中斷配置寄存器

GPIOx_IMR? ? ? ? //GPIO中的中斷屏蔽寄存器,0失能,1使能(默認失能)

GPIOx_ISR? ? ? ? //設置中斷標記寄存器 ,若為1,則說明該位產生中斷,但要手動清零(第幾位為1,第幾位就中斷)

.

4.4? 搶占優先級

????????Cortex——A7 有32個搶占優先級(誰數小,誰的優先級就高)

????????1 1111 ---> 32個

????????0(組優先級) xxxx(子優先級)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86014.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86014.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86014.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Datawhale組隊學習202506】YOLO-Master task04 YOLO典型網絡模塊

系列文章目錄 文章目錄 系列文章目錄前言4.1 DFL 模塊4.1.1 DFL的核心思想 4.2 SPP 模塊4.2.1 核心思想 4.3 SPPF 模塊4.3.1 核心思想 總結 前言 Datawhale是一個專注于AI與數據科學的開源組織,匯集了眾多領域院校和知名企業的優秀學習者,聚合了一群有開…

springboot中表是以int為主鍵id的,寫了一個生成不重復id的方法

【初衷】 由于系統改造,之前的單應用改成了分布式應用,但是系統底層在搭建的時候部分關聯id定義為了int類型,導致分布式id生成的long類型無法插入到int中,且由于是多系統部署,為了把損失降到最低,故此決定…

天氣查詢API集成指南

天氣查詢API集成指南 引言 在互聯網和移動應用快速發展的今天,天氣查詢API已經成為開發人員構建各種應用程序時不可或缺的工具之一。無論是為用戶提供日常出行建議、幫助農民規劃農作時間,還是支持物流行業優化配送路線,實時且準確的天氣信息…

AI 產品部署和交付的基礎設施——全景解析

當然可以!以下是對“AI產品部署和交付的基礎設施”主題的詳細內容擴展,適合介紹給同事,幫助大家系統性理解AI落地的全流程和關鍵要素。 AI產品部署和交付的基礎設施——全景解析 各位同事,隨著AI技術的飛速發展,AI產品…

Linux C 目錄基本操作

需要引用的頭文件 #include <unistd.h> unistd.h 為程序提供了對POSIX操作系統API的訪問接口&#xff0c;主要用于提供與系統調用相關的功能。 char *getcwd(char *buf, size_t size); 用于獲取當前工作目錄&#xff08;Current Working Directory&#xff09;的絕對…

關于二分和分治的詳細講解(從屬于GESP五級)

本章內容 二分 分治 當你把疑惑一劈為二&#xff0c;困境就只剩下一半。 一、二分查找 1. 何謂“二分”&#xff1f; “二分”本質是一種 對單調現象反復折半 的搜索思想。 單調現象&#xff1a;隨變量增大&#xff0c;目標狀態只會保持“假→真”或“真→假”一次性躍遷…

程序猿成長之路之數據挖掘篇——聚類算法介紹

作為無監督學習算法的基礎&#xff0c;學好聚類算法很關鍵&#xff0c;我之前介紹過kmeans聚類算法&#xff0c;現在系統的介紹一下聚類算法 1. 什么是分類 日常生活中我們會經常見到分類的情況&#xff0c;如家里大掃除時給物品歸類&#xff0c;超市貨架上商品分類等。分類就…

PostgreSQL 性能優化與集群部署:PGCE 認證培訓實戰指南

&#xff5c;深夜被數據庫報警驚醒&#xff1f; &#xff5c;海量數據查詢卡死業務&#xff1f; &#xff5c;主庫宕機導致服務中斷&#xff1f; 如果你正被這些PostgreSQL生產難題困擾&#xff0c;是時候系統掌握數據庫內核優化與高可用架構了&#xff01;深度求索聯合PG分會…

Java 對象映射 數據庫表映射 工具類 兩個對象/表實現映射轉換

場景&#xff1a;需要將一個對象的各個字段中的數據映射到另一個對象的字段數據中&#xff0c;或將一個數據庫表映射到另一張表中。 本文使用泛型編程實現了一個對象映射功能的工具類。 需要源對象&#xff0c;映射關系map&#xff0c;目標類。由于是動態的類&#xff0c;所以…

Linux離線搭建Jenkins

Linux離線搭建Jenkins(centos7) Jenkins簡介: Jenkins只是一個平臺&#xff0c;真正運作的都是插件。這就是jenkins流行的原因&#xff0c;因為jenkins什么插件都有&#xff0c;Hudson是Jenkins的前身&#xff0c;是基于Java開發的一種持續集成工具&#xff0c;用于監控程序重…

從零學習linux(2)——管理

一.用戶管理 1.用戶屬性 用戶名、口令、用戶ID&#xff08;UID&#xff09;、用戶主目錄&#xff08;HOME&#xff09;、用戶shell 2. 3. 4.adduser添加用戶 語法&#xff1a;adduser 用戶名 如# adduser superw 添加用戶名為superw的新用戶 5.deluser刪除用戶 語法&am…

《貴州棒壘球》有什么國家級比賽·棒球1號位

中國國家級棒球比賽盤點 | 小白入門指南 3月 | 中國棒球聯賽 (China Baseball League) 國內最高水平職業聯賽&#xff0c;各省市職業隊角逐冠軍&#xff01; 英文&#xff1a;Top-tier professional event with teams nationwide. 5月 | 全國青年棒球錦標賽 (National Youth …

該項目名為“EduPal“,AI推薦

## 完整代碼實現 ### 后端代碼 (app.py) python import os import json import uuid import requests from datetime import datetime from flask import Flask, render_template, request, jsonify from dotenv import load_dotenv # 加載環境變量 load_dotenv() app …

C++法則15:匹配失敗并不是一種錯誤(Substitution Failure Is Not An Error)。

C法則15&#xff1a;匹配失敗并不是一種錯誤(Substitution Failure Is Not An Error)。 應用例子&#xff1a; SFINAE &#xff1a;關于is_class&#xff0c;is_base_of&#xff0c;C編譯器的魔法器&#xff0c;如何實現&#xff0c;is_class&#xff0c;is_base_of。_c is cl…

Ollama客戶端 + Docker搭建本地知識庫(Mac系統)

一、環境準備 1. 安裝Ollama客戶端 官網下載&#xff1a;https://ollama.com 驗證安裝&#xff1a; ollama --version2. 安裝Docker Desktop 下載地址&#xff1a;https://www.docker.com/products/docker-desktop 安裝后確保Docker狀態為"Running" 二、基礎搭建…

FastMCP 2.9 版本詳解:MCP 原生中間件與類型轉換增強

下面我將從三個方面來講解這個&#xff0c;第一是講解2.9版本的更新&#xff0c;第二是講解什么將手動解析底層JSON-RPC 消息&#xff0c;丟失 FastMCP 高層語義&#xff0c;第三是講一講&#xff0c;什么叫做中間件。不了解的兄弟們系好安全帶&#xff0c;我們準備發車了&…

LTspice仿真6——PWL折線波產生

1.自定義波形 2.自定義波形周期 3.以文件.txt的形式定義折線波 4.通過C語言編程&#xff0c;一系列操作&#xff0c;生成自定義正弦波&#xff08;可自定義性強&#xff09;

FunASR搭建語音識別服務和VAD檢測

調整VAD參數 1. 查找VAD模型的配置文件 FunASR中的VAD模型為FSMN-VAD&#xff0c;參數配置類為VADXOptions&#xff0c;可以在以下路徑中找到&#xff1a; /workspace/FunASR/runtime/python/onnxruntime/funasr_onnx/utils/e2e_vad.py 其中&#xff0c;VADXOptions類定義了…

多模態大模型(從0到1)

文章目錄 一、多模態大模型二、常見模態組合 典型應用場景三、多模態&#xff08;模型 框架&#xff09;1. 多模態模型2. 多模態框架 —— 開源項目推薦&#xff08;可快速上手&#xff09; 四、入門與學習路線1. 理論基礎2. 主流多模態模型實戰3. 進階與應用拓展&#x1f4d…

# Vue.js 精確輪播組件實現詳解

## &#x1f4d6; 概述 本文詳細介紹了一個基于 Vue.js 開發的高精度輪播組件&#xff0c;該組件實現了精確的卡片對齊和平滑滾動效果。組件支持混合布局&#xff08;大卡片網格布局&#xff09;&#xff0c;具備智能位置計算和精確滾動控制功能。 ## ? 組件特點 ### &#x1…