[NOVATEK] NT96580行車記錄儀功能學習筆記(持續更新~

一、u-Boot升級燈

運行u-Boot程序時LED燈閃爍,找到運行過程中一直在運行的函數在里面進行LED引腳電平的翻轉

宏定義

Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\include\configs\nvt-na51055-evb.h

Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\drivers\mtd\nvt_flash_spi\nvt_flash_spi_cmd.c

自帶led引腳電平設置函數

/*      LED function for FW update*/
static void led_set_gpio_high(int operation)
{u32 gpio_reg;int ofs = NVT_LED_RED_PIN/32;int shift = NVT_LED_RED_PIN & 0x1F;ofs = ofs*0x4;/*Set gpio as high*/gpio_reg = INW(IOADDR_GPIO_REG_BASE + 0x20 + ofs);#if 0if (gpio_reg & (1 << shift))RESTORE_GPIO_DIR = 1;else {gpio_reg |= (1 << shift);OUTW(IOADDR_GPIO_REG_BASE + 0x20 + ofs, gpio_reg);}#elsegpio_reg |= (1 << shift);OUTW(IOADDR_GPIO_REG_BASE + 0x20 + ofs, gpio_reg);#endifOUTW(IOADDR_GPIO_REG_BASE + 0x40 + ofs, (1 << shift));//LED BLUEofs = NVT_LED_BLUE_PIN/32;shift = NVT_LED_BLUE_PIN & 0x1F;ofs = ofs*0x4;gpio_reg = INW(IOADDR_GPIO_REG_BASE + 0x20 + ofs);gpio_reg |= (1 << shift);OUTW(IOADDR_GPIO_REG_BASE + 0x20 + ofs, gpio_reg);OUTW(IOADDR_GPIO_REG_BASE + 0x40 + ofs, (1 << shift));#if 0 // do not use delay!!! it will slow down flash erase/program!!!/*Config duration*/if (operation)mdelay(NVT_LED_PROGRAM_DURATION);elsemdelay(NVT_LED_ERASE_DURATION);#endif
}static void led_set_gpio_low(void)
{//u32 gpio_reg;int ofs = NVT_LED_RED_PIN/32;int shift = NVT_LED_RED_PIN & 0x1F;ofs = ofs*0x4;/*Set gpio as low*/OUTW(IOADDR_GPIO_REG_BASE + 0x60 + ofs, (1 << shift));//LED BLUEofs = NVT_LED_BLUE_PIN/32;shift = NVT_LED_BLUE_PIN & 0x1F;ofs = ofs*0x4;OUTW(IOADDR_GPIO_REG_BASE + 0x60 + ofs, (1 << shift));#if 0/*Force gpio direction as original config*/if (!(RESTORE_GPIO_DIR)) {gpio_reg = INW(IOADDR_GPIO_REG_BASE + 0x20 + ofs);gpio_reg &= ~(1 << shift);OUTW(IOADDR_GPIO_REG_BASE + 0x20 + ofs, gpio_reg);RESTORE_GPIO_DIR = 0;}#endif
}

在spiNand_programPage和nand_cmd_erase_block里面進行計數電平翻轉

二、將內容保存在Flash里面

在UIInfo.h(na51055_PIP\code\application\source\cardv\SrcCode\UIWnd\SPORTCAM\UIInfo\UIInfo.h)里面名為UI_IndexInfo的枚舉類型定義一個成員用來計數(枚舉類型里面的美格成員都是一個唯一的整數值),然后通過SysSetFlag()和SysGetFlag()函數來設置和獲取枚舉類型成員的值

1、應用場景:ACC斷開后震動開機次數計數

(1)在UIInfo.h定義一個名為SF_SHOCKPOWERON_CNT的成員來記錄震動開機次數

(2)然后在震動開關機文件里面的函數應用

UIWnd\SPORTCAM\UIFlow\UIFlowMovie\UIFlowWndMovie.c:

每次開機都會跑這個函數,acc接入震動開機計數清零、acc斷開開機一次計數值甲乙

System\SysMain_Exe.c:在System_OnShutdown關機函數里面判斷計數值是否超過預設值,調用Gsensor_SetSensitivityParking(GSENSOR_OFF);并傳入參數GSENSOR_OFF使得下次震動無法開機

// Gsensor_SetSensitivityParking(DrvPower_GetBatteryValue()<210?GSENSOR_OFF:SysGetFlag(FL_GSENSOR));
/*sf begin*/
if((SysGetFlag(SF_SHOCKPOWERON_CNT)>10)||(DrvPower_GetBatteryValue()<210)){Gsensor_SetSensitivityParking(GSENSOR_OFF);
}else{Gsensor_SetSensitivityParking(SysGetFlag(FL_GSENSOR));
}
/*sf end*/

三、低電檢測

System\SysMain_Exe.c:在System_OnShutdown關機函數里面調用DrvPower_GetBatteryValue通過ADC讀取當前電壓

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

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

相關文章

什么是JWT(Json-Web-Token)?JWT的用途和優勢是什么?

什么是JWT&#xff08;Json-Web-Token&#xff09;&#xff1f; JWT&#xff0c;全稱JSON Web Token&#xff0c;是一種開放標準&#xff08;RFC 7519&#xff09;。它定義了一種緊湊的、自包含的方式&#xff0c;用于在各方之間安全地傳輸信息。這種信息被設計成JSON對象格式…

簡介RESTful API和中間件Web API網關

從RESTful API開始 RESTful API(Representational State Transfer API)是一種設計Web服務的架構風格,它基于REST(Representational State Transfer)理論。REST是一種軟件架構風格,由Roy Fielding在其博士論文《Architectural Styles and the Design of Network-based So…

LeetCode 550, 380, 234

目錄 550. 游戲玩法分析 IV題目鏈接表要求知識點思路代碼 380. O(1) 時間插入、刪除和獲取隨機元素題目鏈接標簽思路代碼 234. 回文鏈表題目鏈接標簽思路代碼 550. 游戲玩法分析 IV 題目鏈接 550. 游戲玩法分析 IV 表 表Activity的字段為player_id&#xff0c;device_id&am…

Linux卸載殘留MySQL【帶圖文命令巨詳細】

Linux卸載殘留MySQL 1、檢查殘留mysql2、檢查并刪除殘留mysql依賴3、檢查是否自帶mariadb庫 1、檢查殘留mysql 如果殘留mysql組件&#xff0c;使用命令 rpm -e --nodeps 殘留組件名 按順序進行移除操作 #檢查系統是否殘留過mysql rpm -qa | grep mysql2、檢查并刪除殘留mysql…

k8s——Pod容器中的存儲方式及PV、PVC

一、Pod容器中的存儲方式 需要存儲方式前提&#xff1a;容器磁盤上的文件的生命周期是短暫的&#xff0c;這就使得在容器中運行重要應用時會出現一些問題。 首先&#xff0c;當容器崩潰時&#xff0c;kubelet 會重啟它&#xff0c;但是容器中的文件將丟失——容器以干凈的狀態&…

TensorRT 精度debug分析工具

tensorRT還提供了一套可用于engine生成過程中debug的工具&#xff0c;包括Polygraphy、ONNX GraphSurgeon和PyTorch-Quantization。這些小工具用處很大&#xff0c;值得花時間進一步研究。 Debug方法示例 polygraphy Polygraphy是TensorRT官方提供的一系列小工具合集&#x…

spring源碼解析-(1)關于Bean

什么是Bean&#xff1f; 是spring對所有注入到IoC容器中的類的統稱。 我們要注冊進入spirng的bean千奇百怪&#xff0c;所以spring必須需要使用一個統一的定義來標識bean&#xff0c;就有了接下來的BeandDefinition&#xff0c;通過名稱我們就可以知道&#xff0c;他是對bean…

美國演員工會SAG-AFTRA 要求人工智能在廣告中使用演員聲音需征得同意并付費

SAG-AFTRA 的新豁免允許在人工智能生成的廣告中使用演員的聲音&#xff0c;但需要同意、補償和安全措施 美國演員工會&#xff08;SAG-AFTRA&#xff09;推出了一項新的豁免&#xff0c;以保護會員免受未經授權的人工智能在廣告中使用其聲音的影響。動態人工智能音頻廣告豁免定…

C語言Kruskal算法求最小生成樹

Kruskal算法求出最小生成樹。 圖形 算法描述 先找最小權值邊為1的邊有&#xff08;V1&#xff0c;V4&#xff09;&#xff0c;&#xff08;V2&#xff0c;V9&#xff09;&#xff0c;保證不產生回路就可以成功選擇邊 除去上一次找的邊后&#xff0c;在找權值最小的邊為2的有&a…

制作AI問答機器人:從0到1的完整指南

在數字化轉型的浪潮中&#xff0c;企業正追求更高效、智能的客戶服務解決方案。AI問答機器人以其快速響應、全天候服務和持續學習的能力&#xff0c;成為了提升客戶滿意度和加速業務發展的關鍵工具。本文將深入探討如何制作一個企業級的AI問答機器人&#xff0c;并強調其功能體…

OpenAI發表研究論文 介紹了一種逆向工程AI模型工作原理的方法

ChatGPT 開發商 OpenAI 構建人工智能的方法本周遭到了前員工的抨擊&#xff0c;他們指責該公司利用可能有害的技術冒不必要的風險。今天&#xff0c;OpenAI 發布了一篇新的研究論文&#xff0c;目的顯然是為了表明它在通過提高模型的可解釋性來應對人工智能風險方面的認真態度。…

hot100 -- 二分查找

目錄 前言 &#x1f382;搜索插入位置 &#x1f33c;搜索二維矩陣 &#x1f33c;排序數組元素第一和最后一個位置 &#x1f33c;旋轉排序數組 &#x1f4aa;旋轉排序數組中的最小值 &#x1f4aa;兩個正序數組的中位數 前言 二分算法學習_時間超限ac:0%-CSDN博客 &#…

2024年【起重機械指揮】考試及起重機械指揮新版試題

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 起重機械指揮考試考前必練&#xff01;安全生產模擬考試一點通每個月更新起重機械指揮新版試題題目及答案&#xff01;多做幾遍&#xff0c;其實通過起重機械指揮試題及解析很簡單。 1、【多選題】《中華人民共和國特…

【Androi】安卓發展歷程詳解

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 目錄 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌…

git推送代碼到github拒絕推送的解決方案

這里描述一下本地推送的場景&#xff0c;首先我在碼云上建立了一個前端項目&#xff0c;進行了自己的個性化開發&#xff0c;后期在github上創建了一個一樣的項目倉庫存放代碼。使用webstorm進行代碼開發。在下面這個位置可以選擇推送的代碼位置。 選擇推送github倉庫之后&…

Python深度學習基于Tensorflow(16)基于Tensorflow的對話實例

文章目錄 基礎數據清洗數據生成詞匯表定義分詞器并制作數據集構建Transformer模型并訓練模型推理 Tensorflow 的核心就是注意力機制&#xff0c;在之前詳細的介紹過&#xff0c;具體可以看這個&#xff1a;Python深度學習基于Tensorflow&#xff08;9&#xff09;注意力機制_te…

在Java中為什么對a賦值為10,在進行a++時還是等于10呢

首先我們看這樣一組代碼 public class demo1 {public static void main(String[] args) {int a10;aa;System.out.println(a);} } 結果&#xff1a;10不是在第二步有a操作嗎&#xff1f;為什么還是10呢&#xff1f; a的執行步驟如下&#xff1a; 保存當前a的值&#xff08;即10…

websocket鏈接攜帶參數

前端創建鏈接時官方提供的構造函數 var aWebSocket new WebSocket(url, [protocols]); url&#xff1a;要連接的URL&#xff1b;這應該是WebSocket服務器將響應的URL。 protocols&#xff1a;可選&#xff1b;一個協議字符串或者一個包含協議字符串的數組。這些字符串用于指定…

智能語音電銷機器人可以做哪些事情?ai語音機器人系統

智能語音電銷機器人軟件的出現&#xff0c;給很多企業都帶來了福利&#xff0c;尤其是電銷企業&#xff0c;不僅工作效率提升了&#xff0c;成本降低了&#xff0c;還能實現智能化管理客戶的出現&#xff0c;給很多企業都帶來了福利&#xff0c;尤其是電銷企業&#xff0c;不僅…

python初學者筆記(八)——數字階乘

#python初學者筆記&#xff08;8&#xff09;——數字階乘 階乘是基斯頓卡曼于 1808 年發明的運算符號,是數學術語,一個正整數的階乘(factorial)是所有小于及等于該數的正整數的積。 下面利用Python編寫數字階乘 ##1.方法一:利用函數的方法&#xff0c;求輸入值的階乘 #coding…