vitalik_1984 писал(а):Смысл делать объявление двух одинаковых функций?
....
Вы уже объявили переменную как флеш, и адрес соответственно должен будет уже передаваться как флеш.
Смысл в том и состоит, что указатель - это просто число, которое на этой платформе не несёт информации о типе памяти. Именно поэтому сделать универсальную функцию, которая сама определит тип памяти, не получится.
Делая в объявлении функции
unsigned char flash * мы сообщаем компилятору, с какой памятью надо работать.