原创 關於 Cortex-M3 的雙堆棧機制

 寄存器簡介 Cortex-M 系列 CPU 的寄存器組裏有 R0~R15 共 16 個通用寄存器組和若干特殊功能寄存器,如下圖所示。下圖中我看可以看到MSP和PSP兩個堆棧指針寄存器。 通用寄存器組裏的 R13 作爲堆棧指針寄存器 (

原创 Linux設備驅動學習三 設備節點的生成和調用:雜項設備驅動的註冊和調用

設備註冊,驅動註冊和生成設備節點的區別: 生成設備節點是對上的,爲了應用程序可以調用和驅動進行通信。 設備註冊,驅動註冊是驅動嵌入到內核中。   關於雜項設備 雜項設備(設備號10) 對一部分字符設備的封裝,還有一部分不好歸類驅動也歸到了

原创 Linux設備驅動學習二 在module中註冊設備

以module的方式註冊設備,並在驅動中調用設備的參數 在前面的博客我記錄瞭如何註冊設備和如何註冊驅動,我們可以明顯的看出設備的註冊是很麻煩的,需要修改平臺文件,需要配置menuconfig,需要重新編譯內核,需要將編譯好的zImage燒

原创 Linux設備驅動學習一 設備和驅動的註冊

使用iTOP-4412開發板,用的是SCP 1G的板子。 記錄的內容來自於迅爲的視頻學習,主要是對驅動的學習,有些基礎步驟省略沒有記錄。 首先是對外部設備的操作的三部曲: 1.通過原理圖找到設備連接的PIN腳 (處理器的數據手冊) 2.通

原创 ARM9的中斷處理

STM32F1xx以及其他CortexM3 M4內核的中斷都差不多,都採用中斷向量表的方式進行,中斷產生時可以直接跳轉到中斷向量表中找到相應的中斷。而且根據需要這個表可以放到非0的地方,一般都是放在程序最開始的地方。 代碼如下 __Ve