硬件(十)IMX6ULL 中斷與時鐘配置

一、OCP 原則(開閉原則)

對代碼擴展是開放的,允許通過新增代碼來擴展功能;對代碼的修改是關閉的,盡量避免直接修改已有穩定運行的代碼,以此保障代碼的穩定性與可維護性。

二、中斷處理

(一)中斷函數注冊機制

通過?typedef?定義函數指針類型?irq_handler,用于統一中斷處理函數的格式(無參數、無返回值)。
定義中斷向量表?interrupt_vector_table,存儲不同中斷源對應的處理函數。
提供?system_register_irq?函數,實現中斷源與處理函數的注冊關聯,遵循 OCP 原則,方便新增中斷處理時,僅需注冊而無需修改已有代碼。
system_interrupt_handler?函數通過中斷號從向量表中調用對應的處理函數,完成中斷響應。

(二)示例:按鍵中斷

注冊按鍵對應的中斷源?GPIO1_Combined_16_31_IRQn?與處理函數?key_interrupt_handler
在?key_interrupt_handler?中,檢測 GPIO1 的中斷狀態寄存器(ISR),若對應按鍵中斷標志置位,執行?led_nor?操作并清除中斷標志。

三、時鐘系統

(一)時鐘生成核心組件

  • PLL(鎖相環電路):實現倍頻功能,公式為?Fout?=Fin?×n(Fin??為輸入頻率,n?為倍頻系數)。
  • Prescale(預分頻器):實現分頻功能,公式為?Fout?=Fin?/m(m?為分頻系數)。
  • PFD(相位分數分頻器):結合倍頻與分頻,公式為?Fout?=(Fin?×n)/m,可分配n,m的大小(即分數小于零或者大于零),實現倍頻或分頻。

(二)IMX6ULL 中的 PLL

IMX6ULL 有多個 PLL 用于不同模塊時鐘供給,如 ARM PLL(PLL1)為 Cortex - A7 內核提供時鐘,528 PLL(PLL2)作為系統 PLL,USB1 PLL(PLL3)用于 USB 模塊等。

(三)時鐘配置步驟

1. PLL 配置(以 PLL1 為例)

修改 PLL1 前先將內核時鐘置為 24MHz,是為避免切換時鐘時因時鐘不穩定導致 ARM 內核停止工作。具體步驟:

2. 時鐘生成樹(CLOCK ROOT GENERATOR)配置

分別配置關鍵時鐘根:

  • AHB_CLK_ROOT:例如選擇 PLL2 PFD02 作為時鐘源,通過寄存器?CCM_CBCMR?配置時鐘源選擇位;利用?CCM_CBCDR?的?AHB_PODF?進行三分頻,將 396MHz 時鐘分頻為 132MHz。
  • IPG_CLK_ROOT:對 AHB 時鐘進行二分頻,配置為 66MHz。
  • PERCLK_CLK_ROOT:保持一分頻,時鐘頻率為 66MHz,為相關外設提供時鐘。

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

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

相關文章

打工人日報#20250913

打工人日報#20250913 周六,回杭州了,這邊居然下雨。 閱讀 《小米創業思考》 第七章 技術為本 其中的技術介紹算是比較詳細的,架構也很清晰,有一種對自己家產品如數家珍的感覺,對于架構也是經常思考的感覺感恩 和namwei…

【面試題】RAG核心痛點

1. 文檔切分粒度不好把控,既擔心噪聲太多又擔心語義信息丟失 這是一個經典難題。切分粒度過大,單個chunk包含過多無關信息(噪聲),會干擾LLM理解核心內容;切分過小,則可能割裂句子或段落的完整語…

網絡安全與iptables防火墻配置

iptables基本概念iptables是Linux系統中強大的防火墻工具,它工作在用戶空間,通過命令行界面與內核空間的netfilter框架交互,實現數據包過濾、網絡地址轉換(NAT)等功能。Web服務器防火墻配置實例以下是針對Web服務器的iptables配置步驟&#x…

qt中給QListWidget添加上下文菜單(快捷菜單)

步驟 添加customContextMenuRequested信號的槽函數,添加后,在QListWidget上單擊右鍵,無法響應,還必須執行下面操作;設置QListWidget上下文菜單策略為Qt::CustomContextMenu 如下:

一款好看的jQuery前端框架-HisUI

HisUI:一款基于EasyUI的前端組件類庫,讓web開發更迅速、簡單。 HisUI官網文檔

【Docker】P3 入門指南:運維與開發雙重視角

目錄Docker入門:運維與開發運維視角Docker 架構概述Docker 鏡像鏡像概念理解查看和管理鏡像拉取鏡像鏡像標識容器管理啟動容器容器內操作容器的后臺運行多容器管理重新進入運行中的容器容器生命周期管理開發視角容器化思維示例:基于 Nginx 鏡像構建簡單 …

第六屆大數據、人工智能與物聯網工程國際會議(ICBAIE 2025)

重要信息 時間:2025年10月17-19日 地點:中國上海 官網:www.icbaie.net 征稿主題 1. 大數據與云計算 2. 人工智能技術與應用 3. 機器人科學與工程 4. 物聯網與傳感器技術 5. 其他 大數據、人工智能與物聯網 引言 在數字化轉型的時代…

Docker存儲卷(Volume)核心概念、類型與操作指南

文章目錄一、存儲卷概念二、存儲卷分類2.1 管理卷2.2 綁定數據卷2.3 臨時數據卷三、MySQL災難恢復四、存儲卷的局限性一、存儲卷概念 什么是存儲卷? ??Docker 存儲卷 是 Docker 容器中用于持久化存儲數據的獨立文件系統區域。它獨立于容器的聯合文件系統&#xf…

Electron 原生模塊集成:使用 N-API

引言:原生模塊集成在 Electron 開發中的 N-API 核心作用與必要性 在 Electron 框架的擴展開發中,原生模塊集成是提升應用性能和功能邊界的關鍵技術,特別是使用 N-API(Node-API)編寫和集成 C 原生模塊,更是 …

android組包時會把從maven私服獲取的包下載到本地嗎

Android項目在構建(組包)時,Gradle會自動將從Maven私服(或任何配置的倉庫)獲取的依賴包(AAR、JAR等)下載到本地的Gradle緩存目錄中。 下面詳細解釋這個過程和相關的概念: 詳細過程聲…

【應用筆記】構建具有增強識別、防欺騙和說話人識別功能的高級語音用戶界面--瑞薩電子

Suad Jusuf(Director Product Marketing and Strategy, Renesas AI Center of Excellence):語音用戶界面(VUI)正在徹底改變我們與技術交互的方式,實現免提、無縫的通信。通過整合先進語音命令識別功能&…

DAY 26 函數專題1:函數定義與參數-2025.9.13

DAY 26 函數專題1:函數定義與參數 知識點回顧: 函數的定義變量作用域:局部變量和全局變量函數的參數類型:位置參數、默認參數、不定參數傳遞參數的手段:關鍵詞參數傳遞參數的順序:同時出現三種參數類型時…

芯昇XS9922C可替代TP9932和TP9930:國產四核高清解碼芯片,開啟車載視覺處理新紀元 ——從像素級解析到全鏈路集成,重新定義智能駕駛感知核心

引言:車載視覺的“芯”革命 在智能駕駛技術飛速演進的今天,高清視頻采集與實時處理已成為車輛環境感知的“神經中樞”。傳統解碼方案面臨傳輸距離有限、多芯片集成度低、音視頻同步難等痛點,制約著車載環視、盲區檢測等關鍵功能的性能突破。X…

百度競價推廣:百度搜索競價推廣代運營

在數字化營銷浪潮中,百度競價推廣憑借其強大的流量優勢和精準觸達能力,成為企業獲取客戶的核心渠道之一。然而,面對復雜的賬戶管理、激烈的關鍵詞競爭以及動態變化的市場環境,許多企業選擇將專業的事交給專業的人——通過代運營團…

開源端到端訓練多模態大模型LLaVA 深度拆解

注:此文章內容均節選自充電了么創始人,CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…

排序算法(Java)

目錄 前言 常見的排序算法實現: 1. 冒泡排序 思路分析: 代碼實現: 2.選擇排序 思路分析: 代碼實現: 3.插入排序 思路分析: 代碼實現: 4.快速排序 思路分析: 代碼實現&…

深度學習打卡第N6周:中文文本分類-Pytorch實現

🍨 本文為🔗365天深度學習訓練營中的學習記錄博客🍖 原作者:K同學啊 一、準備工作 數據格式: import torch from torch import nn import torchvision from torchvision import transforms,datasets import os,PIL,p…

【代碼隨想錄day 24】 力扣 90. 集合II

視頻講解:https://www.bilibili.com/video/BV1vm4y1F71J/?vd_sourcea935eaede74a204ec74fd041b917810c 文檔講解:https://programmercarl.com/0090.%E5%AD%90%E9%9B%86II.html#%E6%80%9D%E8%B7%AF 力扣題目:https://leetcode.cn/problems/su…

.NET 6 文件下載

.NET 6 API中實現文件的下載。創建HttpHeaderConstant用于指定http頭。public sealed class HttpHeaderConstant{public const string RESPONSE_HEADER_CONTENTTYPE_STREAM "application/octet-stream";public const string RESPONSE_HEADER_NAME_FILENAME "f…

[數據結構——lesson6.棧]

目錄 引言 1.棧的概念和結構 棧的核心概念 棧的結構 2.棧的實現 2.1棧的實現方式 2.2棧的功能 2.3棧的聲明 1.順序棧 2。鏈式棧 2.4棧的功能實現 1.棧的初始化 2.判斷棧是否為空 3.返回棧頂元素 4.返回棧的大小 5.元素入棧 6.元素出棧 7.打印棧的元素 8.銷毀…