原创 SPI NAND FLASH小結

文章目錄1 SPI NAND接口2 尋址常用型號3 Feature寄存器4 讀時序 1 SPI NAND接口 一般來說,SPI的接口就是6個IO,CS, CLK, SI, SO, WP, HOLD。 IO位數 輸入 輸出

原创 x509,pkcs#7實戰解析

文章目錄X509X509的ASN.1定義X509長什麼樣 X509 X509的ASN.1定義 [Certificate ::= SEQUENCE { tbsCertificate TBSCertificate, signature

原创 自制嵌入式操作系統 DAY3

今天實現事件控制塊,存儲管理以及定時器。 1 事件控制塊 本節代碼位於12_event中 什麼是事件控制塊呢? 可以這樣理解,前面學習我們已經知道,創建一個任務需要給這個任務分配一個任務控制塊,這個任務控制塊存儲着關於這個任務的重要信息。

原创 FATFS FAT32學習小記

FAT32概述 FAT32文件系統由DBR及其保留扇區,FAT1,FAT2 和 DATA 四個部分組成,其機構如下圖: 這些結構是在分區被格式化時創建出來的,含義解釋如下: DBR及其保留扇區:DBR的含義是DOS引導記錄,也稱爲操

原创 嵌入式存儲(SPI NOR, SD, EMMC/基於i.MX FlexSPI USDHC)(未完)

1 SPI NOR 現在很多嵌入式系統使用了SPI NOR FLASH,而不選擇CFI NOR FLASH,這樣能夠節省更多的I/O口。而現在SPI NOR FLASH的讀取速度其實很快了,像最新的MXIC的OCTAL FLASH能夠達到

原创 自制嵌入式操作系統 DAY2

話不多說,直接進入正題,今天要實現的便是RTOS任務相關的所有功能 1 臨界區保護 本節代碼在05_critical下 爲什麼需要臨界區保護呢,請看下圖: 當task1要對共享資源進行讀-改-寫操作時,在寫回之前被某一事件中斷打斷切

原创 自制嵌入式操作系統 DAY1

遙想當年剛學習操作系統的時候,很難理解教科書中關於線程/進程的描述。原因還是在於操作系統書上的內容太過抽象,對於一個沒有看過內核代碼的初學者來說,很難理解各種數據結構的調度。後來自己也買了一些造輪子的書,照着好幾本書也造了幾個玩具操作系統

原创 CMSIS CM3源碼註解

文中截圖摘自《Cortex_M3權威指南》 core_cm3.h 1 Memory Map /* Memory mapping of Cortex-M3 Hardware */ #define SCS_BASE (0

原创 Android 中的dm-verity

Android 中的Verified Boot之dm-verity 之前做了一個Verified Boot模塊相關的工作,但是在網上只有找到google的文檔和一個nexus的patch。雖然有patch,但在不同版本的代碼上實現起來卻可

原创 ECDSA 簽名驗證原理及C語言實現

這兩天總算把ECDSA搞明白了,本來想造個ECDSA輪子,但最近有點忙,而ECDSA輪子又不像HASH那樣簡單,所以就直接拿現成的輪子來記錄一些ECDSA學習心得。 這裏貼上github上一個比較適合學習的ECDSA代碼,當然這個版本的

原创 ARMCC/GCC下的stack protector

Stack overflow攻擊是一種很常見的代碼攻擊,armcc和gcc等編譯器都實現了stack protector來避免stack overflow攻擊。雖然armcc和gcc在彙編代碼生成有些不同,但其原理是相同的。這篇文章以ar

原创 Linux SPI NOR 分析(FSL-QUADSPI)

下圖是Linux SPI NOR驅動中讀數寫數據的流程,寫的流程和讀類似。具體設備以i.MX SOC上的QuadSPI爲例 MTD層 MTDBLOCK MTDBLOCK層的分析網上有很多了,這裏有一篇MTDBLOCK的初始化過程的源碼

原创 Android6.0 動態權限(Runtime Permission)

Android6.0 動態權限 Android 6.0中將Runtime Permission分成了普通權限(Normal Permission)以及危險權限(Dangerous Permission),普通權限在AndroidManif

原创 SHA512/384 原理及C語言實現(附源碼)

閒來無事,造個哈希輪子,SHA384/SHA512這兩者原理及實現一樣的,只是輸出和初始化的向量不一樣。 原型 hash_val = sha512/384(message). hash_val: SHA512輸出是512bit(64個b

原创 EMMC/SD學習小記

eMMC之分區管理、總線協議和工作模式 JDEDC EMMC 協議中文 SD卡協議中文2.0 3.0 EMMC4.4 非Boot模式讀流程 等待74個時鐘 CMD0 復位emmc至idle狀態 命令索引 類型 參數 應答 縮