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

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

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

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

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

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

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

 
Опции темы

far memory и Keil

Непрочитано 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.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Я думаю, не успевает записаться.Похоже, идет запись страницы нормально, а при переходе на следующующую нужно делать паузу -милисекунд 10-20.Не весь массив пишите, а страницами.
urry вне форума  
Непрочитано 28.06.2007, 14:00  
lsa
Почётный гражданин KAZUS.RUN
 
Аватар для lsa
 
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,479
Сказал спасибо: 3,193
Сказали Спасибо 2,982 раз(а) в 682 сообщении(ях)
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, время: 01:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.