Да, я чё-то туплю. Нашел функции для чтения из flash: pgm_read_byte_near и pgm_read-word_near ну и есть парные с атрибутом far Насколько я понимаю, эта внутренняя флеш устроена таким образом, что у нее в одной ячейке записаны ДВА байта. и адресация у нее от 0 до 0xFFFF ТО есть если я читаю предположим с адреса 0, то я должен прочитать ДВА байта функцией pgm_read_word а с адреса 1 следующие ДВА байта. Но при последовательном вызове функции pgm_read_word(0), pgm_read_word(1) я читаю по одному байту. Я просто смотрю в отладчике и в гексоидном файле. Понимаю, что по стандарту анси С у нас байтовая адресация, а не 2-х байтная. Мне не совсем ясно, как мне залезть за предел в 64 кБайта на атмеге 128? Или програмная адресация не соответсвует реальной? ТО есть как мне предположим прочитать слово по адресу 0xFFFE?
|