TQ2440 軟中斷的基本使用

2021-06-22 06:41:58 字數 851 閱讀 2695

在c源程式中用軟中斷時可以使用 格式:__swi(軟中斷號) 函式名(形參)  來宣告乙個軟中斷函式 例如:__swi(0x01) led(void);   這樣就宣告了乙個具有中斷號為0x01的軟中斷函式。

注:在arm處理器中,一般將軟中斷號放在發生軟中斷的那條指令的低24位。

下面是處理軟中斷的彙編**:(在彙編**前面需要加import c_swi_handler)

handlerswi

stmfd sp!, ;儲存現場,apcs規定彙編和c函式之間形參的傳遞為:r0作為第乙個形參,少於4個時使用r0-r3傳遞,多的要使用堆疊

ldr r0, [lr,#-4] ;取出軟中斷號所在的指令

bic r0, r0, #0xff000000 ;低24位為軟中斷號

bl c_swi_handler ;呼叫軟中斷處理函式

ldmfd sp!, ^ ;恢復現場

在軟中斷服務函式中,如果不止乙個軟中斷,則需要使用軟中斷號來判斷

完整程式的例子:

#include "2440addr.h"

#include "config.h"

extern void c_swi_handler(unsigned num);

__swi(0x01) void led(void);

void ledinit(void);

void main(void)

void c_swi_handler(unsigned int num) }

void ledinit(void)

TQ2440背光控制

控制lcd背光就是控制s3c2440的lcd控制的lcd pwren腳lcdcon5暫存器pwren位控制lcd是否輸出。對linux 2.6.30.4核心進行移植。新建乙個backlight.c檔案放到 drivers video 目錄下。內容如下 include include include ...

《TQ2440載入Hello world驅動模組》

經過將近乙個月都時間終於按照手冊把linux核心移植完了,接下來要開始驅動模組的移植了,在網上查了一些資料,總結如下 目標平台 tq2440 arm9 核心版本 linux 2.6.25 前提 宿主機上已安裝交叉編譯工具,因為這個在linux核心移植的時候就使用過了,這裡就不說了。進入正題 1 首先...

TQ2440移植strace工具

一 以下是網上的乙個方法,但是不適合tq2440 主要是主機靜態連線的庫我沒有,呵呵 strace工具是乙個非常強大的工具,是除錯程式的好工具。要移植到arm平台,就需要使用交叉編譯工具編譯生成靜態鏈結的可執行檔案。具體步驟如下 2.解壓。3.配置。configure host arm none l...