以前不熟悉指標,當然也不熟悉memory的意思
感謝這個工作,讓我對memory有了進一步的了解
難怪指標在C語言無處不見,因為真的很好用
不過到底那裡好用,這個我一時也說不上來
不過最近研究了一下我之前常用的MCU,絕對位址的宣告如何使用
1、以dsPIC 為例
int var __attribute__ ((address(0x860)));
意思就是將 var 這個變數定義在address 0x860的位址上
2、以stm32 MDK 為例
#include <absacc.h>
int var __at (0x20008000);
其實這只是一個簡單的操作手法而已
那麼要讀出絕對位址的方法就很多種了
int ans;
var = 10;
以往的做法
ans = var;
那定義成絕對位址的話
1、以dspic為例
ans = *(volatile int *)0x860;
2、以stm32 為例
ans = *(volatile int *)0x20008000;
或許有人可以想到這樣做有什麼好處了
不過不知道的也沒關係
有時候,真的就是"了解它,玩它",就對了