使用指令碼語言生成晶元暫存器列表的標頭檔案

2021-07-02 00:05:30 字數 1496 閱讀 8322

指令碼,跟c語言一樣,是一種程式語言,但是,指令碼語言抽象層次更高,用指令碼可以輕鬆處理文字、管理系統(如linux下的shell)。

而我們在做微控制器開發的時候,經常跟不同的外設打交道,而某些外設有暫存器列表,如果我們手工地把這些暫存器列表弄成標頭檔案,將是一件非常累的體力活。

這時,指令碼語言正是為此而生啊,使用它可以非常方便地生成晶元暫存器列表的標頭檔案。下面以tcl/tk為例,處理ade7878晶元的暫存器列表並生成51微控制器的標頭檔案。

1、開啟ade7878的datasheet,找到如下圖位置。

2、用文字選擇工具把暫存器列表,copy到記事本當中

3、清一色地處理成如下形狀(去掉中文和少量不規則的行)

新增gvim的安裝路徑到系統環境變數path當中,我這裡gvim.exe的路徑是d:\vim\vim73

5、在cmd下輸入tclsh,進入tcl直譯器

在tcl直譯器中,輸入gvim h.tcl

並輸入如下內容

7、用source命令執行指令碼檔案

在工作目錄下,會看到有.h檔案生成

其中,h是tcl指令碼檔案,ade7878_head是未處理的txt檔案,ade7878.h是我們需要的51微控制器標頭檔案

ade7878.h的部分內容如下:

怎麼樣?是不是節省了很多時間?而且寫好乙份指令碼,以後遇到同類事情都是瞬間解決,一勞永逸。

想一下,如果這個功能,用c語言來寫,是多麼地複雜,而且不容易維護。

如果你是fpga/asic工程師,可以學習tcl/tk,推薦的教材是《tcl_tk入門經典(第2版)》,如果你是微控制器工程師,可以學習perl,推薦的教材是《perl語言入門(第五版)》,如果你是嵌入式工程師,可以學習bash《shell指令碼學習指南》。以上推薦的教材均可以網上找到pdf版的電子書。

其中perl指令碼的語法很像c語言,而且相對於其它指令碼語言來說,更具有通用性。

組合語言 使用暫存器

本書已經講到對於我們為什麼要使用變數 因為我們在程式設計時要儲存資料。我們也已經學了,在組合語言中,我們將資料儲存在暫存器和記憶體空間中。1 首先在c minic 目錄下的tc.exe編寫乙個ur1.c程式 編譯 鏈結成ur1.exe 2 用debug載入ur1.exe,用u命令檢視ur1.c編譯後...

組合語言綜合研究 使用暫存器

1 使用暫存器程式設計 main 函式是c 語言編寫程式的入口函式,但是 main 中的第一條語句並不是程式中被執行的第一條指令,還有很多其它語句。為了研究我們的程式編譯後的語句,首先要找 main 函式的位置,可以通過下邊的程式獲得 main 函式的偏移位址 main 函式中printf 語句表示...

著色器指令碼語言使用方法

uniform 輸入著色器的唯讀值,儲存資料用的,例如轉換矩陣 光照引數或者顏色。基本上各種輸入著色器的常量引數像頂點和片段應該是uniform。uniform宣告全域性變數,頂點著色器中宣告的uniform,片元著色器也可以使用。另,不同平台對個數有限制,詳情可以查資料。e.guniform ma...