А говорят что ошибкой в программе нельзя убить процессор...Как два пальца:-))
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
sda 12 октября 2004 г. 09:53
|
|
|
|
Пока программа была маленькой все локальные переменные размещались в data и всё было нормально.Но добавлялись новые задачи,увеличивалось количество функций,линкер периодически стал напоминать о нехватке памяти данных.Как-то я психанул и перевёл все переменные в xdata,в том числе и в приведённой ниже функции:
void WriteFlash()
{
data uint i = 0;
xdata uchar *adressRom;
xdata uchar *adressRam;
adressRam = BuferRam;
EA = 0;
adressRom = (uchar*)TabData;
FLSCL = 0x01;
PSCTL = 0x03;
*adressRom = 0;
PSCTL = 0x01;
do *adressRom++ = *adressRam++;
while (++i < 512);
PSCTL = 0;
FLSCL = 0x00;
EA = 1;
}
Переменную i я перевёл в xdata.Сделал я это не подумавши,автоматически.Прошло какое-то время,всё благополучно забылось,возникла необходимость записать данные во flash.Процессор завис,не отзывается на программатор и никакие танцы с бубном не выводили его из этого состояния.Понимаю,что я допустил грубую ошибку,но всё же...Работаю с Cygnal 8051F020 в среде Keil.
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Ответ: а можно более подробно, в чём суть? i вывалилось за пределы xdata вникуда? — fk0 (12.10.2004 14:27, пустое)
- Можно. — sda (12.10.2004 14:34, 152 байт)
- А примерчик почитать слабо??? там же нормальным языком написано... — Programmer (12.10.2004 13:17, 143 байт)
- ... — Programmer (12.10.2004 13:19, 27 байт)
- Такое случается при залезании в Flash Reserved Area. Часто лечится нажатием Erase Code Space в IDE — Cygnal (12.10.2004 10:44, пустое)
- Хе-хе-хе... А вот если моя поделка человека убила - мне что будет? — hyppo (12.10.2004 10:04, 26 байт)
- Ни хрена ни будет, если открестишься от всего в паспорте. Типо: за любой вред,причиненный в процессе эксплуатации изделия изготовитель ответственности не несет. Пример - молоток. Убить всегда пожалуста, а привлечь - нет. — Нammеr (12.10.2004 12:56, пустое)
- Программист ты или автослесарь, который тормозной шланг плохо привинтил -- хрен один. Посодют. Для определения конкретики ориентируйся на автослесаря как на судебный прецедент... — Николай Коровин (12.10.2004 11:52, пустое)
- Программист ты или автослесарь, который тормозной шланг плохо привинтил -- хрен один. Посодют. Для определения конкретики ориентируйся на автослесаря... — Николай Коровин (12.10.2004 11:51, пустое)
- Ответ: в зависимости от того какая программа и какого человека...а вообще+ — andys (12.10.2004 10:13, 209 байт)
- Судите себя судом совести. — --- (12.10.2004 10:11, пустое)
- Ответ: Хе-хе... Предлагаю расширить вопрос: могут ли программисты запороть процессор. У меня вон целая коллекция 162-х Мег лежит, программисты запороли, играясь с перемычками... — Log (12.10.2004 09:57, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru