巨集定義暫存器設定函式

2021-08-08 18:22:20 字數 1249 閱讀 9807

本文講述了如何通過巨集定義的方法來新建設定cpld暫存器類的函式。並且採用了位段的方法來更新暫存器的某幾位。測試結果表明,結構體上面的成員變數,對應位元組低位。結構體下面的成員變數,對應位元組高位。使用時,最好在自己的環境上測試好。

#include 

#include

static unsigned char regbuf[5] = ;

typedef struct reg1structreg1;

typedef struct reg2structreg2;

typedef struct reg3structreg3;

typedef struct reg4structreg4;

typedef struct reg5structreg5;

int regread(int addr, unsigned char *data)

int regwrite(int addr, unsigned char *data)

#define reg_set_func(regnum, bitmember) \

unsigned char reg_set_##bitmember(unsigned char memval)\

reg_set_func(1,func10)

reg_set_func(1,func11)

reg_set_func(2,func20)

reg_set_func(2,func21)

reg_set_func(3,func30)

reg_set_func(3,func31)

reg_set_func(4,func40)

reg_set_func(4,func41)

reg_set_func(5,func5)

int main(void)

sunxk@146:~> ./func

regwrite:write 1 to reg 1

regwrite:write 41 to reg 1

regwrite:write 1 to reg 2

regwrite:write 3 to reg 2

regwrite:write 1 to reg 3

regwrite:write 9 to reg 3

regwrite:write 1 to reg 4

regwrite:write 11 to reg 4

regwrite:write 1 to reg 5

暫存器定義

暫存器是 處理器內的組成部分。暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令 資料和位址。在 處理器的控制部件中,包含的暫存器有指令暫存器 ir 和程式計數器 pc 在 處理器的算術及邏輯部件中,包含的暫存器有累加器 acc 暫存器是記憶體階層中的最頂端,也是系統獲得操作資料的最快速途徑。暫...

暫存器定義

arm程式設計 關於arm暫存器的巨集定義 gf86530430 136次 2008 8 27 請問各位大蝦 在arm的標頭檔案裡,對與暫存器的定義為什麼不跟51的一樣?如下 define rutxh0 volatile unsigned char 0x1d00020 define rutxh1 v...

ARM程式設計 關於ARM暫存器的巨集定義

arm程式設計 關於arm暫存器的巨集定義 gf86530430 136次 2008 8 27 請問各位大蝦 在arm的標頭檔案裡,對與暫存器的定義為什麼不跟51的一樣?如下 define rutxh0 volatile unsigned char 0x1d00020 define rutxh1 v...