看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《baldhawk (哈哈)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : C : 問題(Question): 請問ARM 設定 Register問題, 要設定Register 0x2000_0000 的值為 0x12345678 用如下寫法: Typedef struct { UINT32 A; }B; (B *)(0x20000000) -> A = 0x12345678; 應該是把位址0x20000000轉型結構指標"B", 再指向變數"A", 就可以把值存到Register裡面, 一定轉型成B才能設值? 有比較簡單方法嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.232.154 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1429882190.A.4E7.html
EdisonX: *(UINT32*)(0x20000000) = 0x12345678; ?? 04/24 22:08
EdisonX: 不過話說這種 Code 在 F.W 那裡應該寫成 macro 較佳 ? 04/24 22:08
EdisonX: #define SET_ADDR_VAL(ADDR,VAL) *(UINT32*)ADDR = VAL; 04/24 22:09
EdisonX: 我才發現這篇的回文原來和原主題沒關係 Orz 04/24 22:11
montieddie: 不好意思 和原文是沒關係的 04/24 22:41
montieddie: (B *)(0x20000000)->A 和 *(UINT32*)ADDR 相同嗎? 04/24 22:44
montieddie: 這邊也搞不太懂 04/24 22:45
EdisonX: 效果是一樣的。 04/25 00:53
notBeing: precedence是->比type cast高, 這compile會過? 04/25 18:45