Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 28.06.2007, 12:41  
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию far memory и Keil

Кто нибудь сталкивался с таким? Хочу я разместить большой массив в far memory. Но почему то он получается с дырками, т.е. идут данные, потом FF потом снова данные и тп. Пробовал кейл 2 и 3, разные девайсы ставил в опциях проекта-все равно...
Вот код:
Код:
#pragma USERCLASS (HDATA = eeprom)   // use HDATA_EEPROM for E2PROM area

#include ‹AT898252.H›

unsigned char far dscrc_table[256] = {
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11
};


void main(){

char a;

a=dscrc_table[1];

}
Потом делаю как говорит Кейл:
SAVE EEPROM.HEX V:0, V:0x7FF

Открываю файл, вижу:
Код:
:100000000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B40
:100010000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B30
:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
:100040000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B00
:100050000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0BF0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:100080000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0BC0
:100090000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0BB0
:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
:1000C0000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B80
:1000D0000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B70
От массива осталась половина
В какую сторону копать?
Реклама:
stri вне форума  
Непрочитано 28.06.2007, 12:47  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Я думаю, не успевает записаться.Похоже, идет запись страницы нормально, а при переходе на следующующую нужно делать паузу -милисекунд 10-20.Не весь массив пишите, а страницами.
urry вне форума  
Непрочитано 28.06.2007, 14:00  
lsa
Почётный гражданин KAZUS.RU
 
Аватар для lsa
 
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
lsa на пути к лучшему
По умолчанию

Формирование массива делает компилятор.
И код доступа делает компилятор С.
Я думаю, если посмотреть асм (сформированный С), то способ доступа к этому массиву объяснит причину кажущейся дырявости.
Проще говоря - выполняющаяся программа будет воспринимать его правильно.
lsa вне форума  
Непрочитано 28.06.2007, 14:42  
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию

да, массив формирует Кейл. Но дырявость не кажущаяся, а реальная, т.к. выводит FF и в симуляторе и в железе. Настораживает что размер дыр совпадает с размером страниц ЕЕПРОМ-32 байта, но непонятно почему компилятор изначально не создает этот массив...я бы еще понял если бы в процессе работы программы туда что то не писалосьчиталось, а так...
stri вне форума  
Непрочитано 04.07.2007, 07:28  
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию

немного разобрался в проблеме. Там файл есть, xbanking.a51 ,который управляет записью в EEPROM при обращении к ней из С компилятора. Поставил задержки побольше при записи, и вроде нормально стало...
stri вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proteus и Keil saa_tv Микроконтроллеры, АЦП, память и т.д 2 08.03.2009 13:17
Взамодействие Touch memory и микроконтроллера. tatarin_as Микроконтроллеры, АЦП, память и т.д 3 15.04.2008 19:15
[Решено] keil 3 keil23 Делимся опытом 5 07.10.2007 09:00
Program memory в PIC12F675 waiting Микроконтроллеры, АЦП, память и т.д 6 01.02.2007 01:21
keil 3 rio Микроконтроллеры, АЦП, память и т.д 3 15.08.2006 21:41


Часовой пояс GMT +4, время: 19:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot