Я хочу написать очень простой драйвер для инициализации, записи/чтения с некоторых периферийных устройств на микроконтроллере, так же, как я это сделал в C. Я использую в качестве примера GPIO периферийные для инициализации, записи и чтения.Доступ к неустойчивому регистру в Ada
GPIOA : GPIO_Register with
Volatile,
Address => System'To_Address (GPIOA_Base);
pragma Import (Ada, GPIOA);
Если я объявляю список доступа ко всем GPIOs:
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» должны быть псевдонимом. –
Если вы этого не сделаете, вы получите еще один тип ошибок ошибок, связанных с проверкой строгого типа. – Elisabeth
Если я это сделаю, я по-прежнему получаю ту же ошибку: '142: 29 префикс атрибута« ACCESS »должен быть aliased.' – Elisabeth