レジスタ値の設定の適用例

1191 ワード

#include 
#include 
int main(int argc,char *argv[])
{
    int i = 0;
    if(argc != 4) {
        printf("usage : regAddr bit value");
        return -1;
    }
    for(i=0;i<4;i++){
        printf("%s ",argv[i]);
    }
    printf("
"); unsigned int reg_addr = strtol(argv[1],NULL,16); unsigned int bit = strtol(argv[2],NULL,10); unsigned int value = strtol(argv[3],NULL,10); printf("register:0x%x\t",reg_addr); printf("bit:%d\t",bit); printf("value:%d
",value); printf("------------------
"); if(value == 0){ printf("clear bit
"); reg_addr &=~(1<

プログラムコードは以上の通りで、テスト方法は以下の通りです.
(1)セット
$ gcc bit_ctrl.c -o bit_ctrl  && ./bit_ctrl 0 31 1 ./bit_ctrl 0 31 1 register:0x0    bit:31  value:1 ------------------ set bit register:0x80000000
(2)クリア$gcc bit_ctrl.c -o bit_ctrl  && ./bit_ctrl FFFFFFFF 31 0 ./bit_ctrl FFFFFFFF 31 0 register:0xffffffff     bit:31  value:0 ------------------ clear bit register:0x7fffffff