我想寫一個非常簡單的驅動程序來初始化,寫入/讀取微控制器上的某些外設,就像我在C中完成的一樣。我使用GPIO作爲示例外設進行初始化,寫入和讀取。訪問Ada中的易失性寄存器
GPIOA : GPIO_Register with
Volatile,
Address => System'To_Address (GPIOA_Base);
pragma Import (Ada, GPIOA);
如果我宣佈一個列表來訪問所有的GPIO:
type GPIO_Register_ptr is access all GPIO_Register with volatile;
Gpio_List_Pointers : array (Integer range 1 .. 8) of aliased GPIO_Register_ptr;
,然後分配:
Gpio_List_Pointers(1) := GPIOA'Access;
我得到的錯誤:
142:29 prefix of "ACCESS" attribute must be aliased
任何想法如何整理出來?
我不認爲'GPIO_Register_ptr'需要是易失性的,或者'Gpio_List_Pointers'的組件需要被別名。 – 2015-02-10 16:21:16
如果你不這樣做,你會得到另一種與嚴格類型檢查有關的錯誤類型的錯誤。 – Elisabeth 2015-02-10 16:50:40
如果我這樣做,我仍然會得到相同的錯誤:「ACCESS」屬性的'142:29前綴必須是別名。「 – Elisabeth 2015-02-10 16:59:01