Перейти к содержанию
    

Использование __no_init

30 минут назад, artemkad сказал:

__no_init volatile unsigned char  Flags@ 0x3E;    // флаги в регистре GPIOR0

При любом сбросе и подаче питания тут будет однозначный ноль.

  1. В нормально написанной программе переменная не может находиться в области портов ввода-вывода.
  2. В ненормально написанной программе любая область памяти может быть проинициализирована любым значением в стартап-коде (до старта main()). В том числе и переменная смаппированная на абсолютный адрес в памяти. Если только туда вообще возможна запись.

 

PS: В любом случае ТС спрашивал не про инициализацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 minutes ago, jcxz said:
  1. В нормально написанной программе переменная не может находиться в области портов ввода-вывода.

И тем не менее Atmel для Mega48 предоставил специальный регистр(даже три) в пространстве ввода-вывода, причем этот регистр в первой тридцатке портов(0x1E) и имеет короткую работу с битами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, artemkad said:

И тем не менее

Я думаю, что тут, скорее, больше вопрос терминологии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...