Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Пт июн 29, 2012 21:16:46
Здравствуйте! Помогите пожалста студенту. Пишу на СИ под модуль на базе 8051. The RF50/1/2/3/4/5 family utilizes proprietary CIP-51 microcontroller core. The CIP-51 is fully compatible with the MCS-51™ instruction set; standard 803x/805x assemblers and compilers can be used to develop software. The CIP-51 core offers all the peripherals included with a standard 8052.
Вопросы:
1) что происходит на низком уровне, когда я в си объявляю глобальную переменную, куда она сохранится? В RAM?
2) что произойдет с переменной после программного ресета контроллера? в даташите сказано: 'The contents of RAM are unaffected during a reset; any previously stored data is preserved as long as power is not lost' значит - ее значение и адрес не изменятся? я так же смогу к ней обращаться, если не объявлю ее повторно(допустим сделаю проверку флага программного ресета перед объявлением)?
Заранее спасибо!
Пт июн 29, 2012 23:11:43
1. Глобальные переменные С размещаются компоновщикиом с области RAM или ХRАМ, если такая есть. В последнем случае нужен специалный синтакс. Присвоение адреса переменной производится один раз на этапе сборки программы. После этого адрес переменной не меняется до следующей перекомпиляции/сборки программы. Однако, возможно размещение данных и в FLASH. Как правило, там размещаются данные, кот. в процессе работы программы не меняются, например таблицы или константы.
2. Вы правильно поняли - при ресете состояние RAM не меняется если не было отключения питания. А про адреса переменных я выше написал.
Сб июн 30, 2012 16:49:31
спасибо!
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.