Jump to content

    

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

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

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

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

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

 

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

Share this post


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

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

Share this post


Link to post
Share on other sites
7 hours ago, artemkad said:

И тем не менее

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now