Здравствуйте.
Возникла следующая проблема. Некий проект делался на компиляторе CVAVR версии 1.24.7e. В коде программы использовался указатель на EEPROM, объявленный следующим образом: unsigned long int eeprom *pEprom. Обращение к этому указателю происходило, например, так: pEprom= x, где x — переменная или константа. Ошибок компилятор не находил.
При компиляции этого же проекта в CVAVR версии 1.25.3 выдаётся стандартное Си-шное сообщение об ошибке преобразования типов (например: «a value of type ‘unsigned int’ can’t be assigned to an entry of type ‘eeprom unsigned long’»). Приходится перед каждой операцией присвоения адреса указателю выполнять преобразование типов: (unsigned long int eeprom *)x, и, наоборот, перед присвоением значения адреса указателя значению переменной — выполнять соответствующее преобразование. Эти действия сильно загромождают исходный код программы, так как обращений к указателю в программе несколько десятков. Можно ли обойти это ограничение в данной версии?
Спасибо, всего хорошего.
|