реклама на сайте
подробности

 
 
6 страниц V  « < 4 5 6  
Reply to this topicStart new topic
> Порты AVR и компиляция
singlskv
сообщение Oct 2 2007, 20:08
Сообщение #76


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(sensor_ua @ Oct 2 2007, 23:38) *
smile.gif А давайте вспомним обычную файловую операцию - сохранение файла. Чтобы записываемый файл не убил ещё целый оригинал, нужно писать в другое место. Далее возникают остальные вопросы - как разгребаться с мусоркой и т.п. Файловые системы типа JFFS и новомодная ZFS именно то же делают -записывают на свободное место, а потом разбираются с мусоркой (в JFFS - garbage collection). Но оказывается задачи подобного рода - гарантированная запись некоего блока данных - возникали и раньше, например, в бесконтактных фискальных системах (карточки Mifare). Дык там это не пальцы загибать, а денюжки хранить.
Не очень понял как это касается темы спора
встроенные vs собственные средства работы с EEPROM ?
Если вы о том что нужно таки аппаратными средствами обеспечить запись в eeprom,
Цитата
ЧТо придумывать будем?wink.gif))
то придумывать ничего нового не будем, уже все придумано.
Транзакция считается законченой когда записано обе копии данных в EEPROM.

Если бы Вы внимательно читали мои посты, например пост №54 то Вы бы заметили что
мой автомат апдейтит две копии данных и по ходу для каждой из них
сохраняет/проверяет CRC.
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Oct 2 2007, 20:32
Сообщение #77


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
Как сохранить текущую конфигурацию прибора при пропадании питания.
- я писал?
а это -
Цитата
Обычно(чаше всего) обсуждение ведется в русле того, что нужно аппаратными
средствами обеспечить работу контроллера еще какое-то время для того,
чтобы успеть записать эту самую конфигурацию.

Может все-таки стоит в подобных ситуациях озаботиться возможностью
"ВСЕГДА" иметь правильную конфигурацию в EEPROM ?

Озаботились кроме Вас ещё много людей и я Вам написал о том, что проблема не нова. И независимо от Вашего некоего "автомата" давно успешно решаема. Если Вы не знакомы с известными решениями, то это не повод рассказывать о том, что кроме Вашего решения (крохи которого Вы попытались громко показать) ничего иного нетwink.gif))
Цитата
транзакция считается законченой когда записано обе копии данных в EEPROM.

Если бы Вы внимательно читали мои посты,


Простите, но не заставляйте ассоциировать себя с героем старого анекдота "чукча не читатель - чукча писатель". Лучше всё-таки расскажите, чем отличается Ваше решение от общеизвестных, кроме как авторством кода и неприятием готовых решений от авторов компиляторов и сопутствующих библиотек.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
singlskv
сообщение Oct 2 2007, 20:56
Сообщение #78


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(sensor_ua @ Oct 3 2007, 00:32) *
Озаботились кроме Вас ещё много людей и я Вам написал о том, что проблема не нова. И независимо от Вашего некоего "автомата" давно успешно решаема. Если Вы не знакомы с известными решениями, то это не повод рассказывать о том, что кроме Вашего решения (крохи которого Вы попытались громко показать) ничего иного нетwink.gif))
Я и не пытаюсь себе присваивать пальму первенства, более того, я уверен что те
решения о которых я говорю применяются очень широко. Тока почему то на электрониксе
очень многим они не нравятся smile.gif
Цитата
Лучше всё-таки расскажите, чем отличается Ваше решение от общеизвестных, кроме как авторством кода и неприятием готовых решений от авторов компиляторов и сопутствующих библиотек.

Если Вас не убедило 33 такта против 81 на записи одного байта (да еще и в ситуации когда
цейтнот и питания осталось совсем мало), то я не смогу Вам объяснить чем мое решение лучше...

А если Вы действительно хотите разобраться со всеми нюансами сохранения правильной
конфигурации в EEPROM, то давайте это обсуждать, тока без вариантов типа в IAR это сделано
круто и ничего другого я знать не хочу,
и я думаю что тоже узнаю для себя что-то новое.
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 2 2007, 21:44
Сообщение #79


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(singlskv @ Oct 2 2007, 23:56) *
Если Вас не убедило 33 такта против 81 на записи одного байта (да еще и в ситуации когда
цейтнот и питания осталось совсем мало), то я не смогу Вам объяснить чем мое решение лучше...

Да какая разница сколько тактов уйдет на sheduling записи одного байта. Операция записи длится 3-5ms, ответьте - сколько раз при этом будет осуществлен вызов вашего автомата и "отвал" по факту занятости eeprom, сколько тактов это сожрет? Не кажется ли вам, что разница 81-33 = 48 тактов просто мизерная и стремится к нулю на фоне постоянных накладных расходов автомата.
Кстати откуда 81 такт?
(eeprom char *)xxx = YY - это 14 инструкций с отключенной оптимизацией

Цитата
А если Вы действительно хотите разобраться со всеми нюансами сохранения правильной
конфигурации в EEPROM, то давайте это обсуждать

что тут обсуждать. три основных момента - залог успеха:
1. пакетная организация,
2. CRC обязательно.
3. Дублировать записи.
Цитата
тока без вариантов типа в IAR это сделано
круто и ничего другого я знать не хочу,

Вы то хоть поняли что в IAR сделано? И как то, что сделано в IAR кореллирует с тем, что выставляете вы? Уровни же разные совершенно, вы хотите сопоставить пакетный уровень, байт уровню? Типа - да начерта нам эти сигналы всякие, биты, байты, вот IE с http прекрасно работает..
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Oct 3 2007, 04:22
Сообщение #80


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(singlskv @ Oct 2 2007, 22:06) *
Может все-таки стоит в подобных ситуациях озаботиться возможностью
"ВСЕГДА" иметь правильную конфигурацию в EEPROM ?
Правда для этого(часто) придется написать свой код общения с EEPROM. smile.gif


Если у меня правильная конфигурация (состояния автоматов) меняется примерно раз в минуту, то дырку я протру за 100К/60/24 = 70 дней. Если я растиражирую эту запись 10 раз - то за 700 дней. Правда, епром у меня используется впритык, и максимум, что я могу - это 3 копии. Т.е. 70*3 = 210 дней. Все равно мало. Поэтому приходится иметь парковку...

Кст, насчет спора собственные функции \ встроенные средства. Сам для епрома использую собственные - с автоматическим тиражированием, CRC и работающие в фоне. А вот для доступа к флэшу использую модификатор __flash. По моему, вполне удобно.
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Oct 3 2007, 05:16
Сообщение #81


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата(singlskv @ Oct 2 2007, 23:56) *
Я и не пытаюсь себе присваивать пальму первенства, более того, я уверен что те
решения о которых я говорю применяются очень широко. Тока почему то на электрониксе
очень многим они не нравятся smile.gif

Если Вас не убедило 33 такта против 81 на записи одного байта (да еще и в ситуации когда
цейтнот и питания осталось совсем мало), то я не смогу Вам объяснить чем мое решение лучше...

А если Вы действительно хотите разобраться со всеми нюансами сохранения правильной
конфигурации в EEPROM, то давайте это обсуждать, тока без вариантов типа в IAR это сделано
круто и ничего другого я знать не хочу,
и я думаю что тоже узнаю для себя что-то новое.

8.5 МИЛЛИСЕКУНД продолжается запись. Какие такты кого спасут? IMNHO, Вы путаете время записи адреса и данных для АППАРАТНОЙ записи с продолжительностью самой записи. И, кроме того, извините, но глядя на кусочек кода (вероятно это код Вашего автомата), не только у меня возникли сомнения в его корректности. Вопрос же о хранении и валидности данных касается более алгоритмов хранения, а не реализации их в конкретном драйвере, о котором кроме дифирамбов никакой инфы, кроме неиспользования штатных средств, толком и не было.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 3 2007, 05:38
Сообщение #82


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(sensor_ua @ Oct 2 2007, 17:18) *
Пытался. Используются несуществующие регистры RAMPx. Проблема (сомневаюсь, что показалось) нерешаема.


Ну я в IDA размотал этот кусок, где он генерирует комманду записи в RAMPx, ее можно там заменить, пропатчив экзешник конечно, штатными средствами не получится. Только что-то меня остановило, уже не помню что.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Oct 3 2007, 06:58
Сообщение #83


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
он генерирует комманду записи в RAMPx, ее можно там заменить, пропатчив экзешник

Уже не помню, но кроме адресации по смещению какие-то нюансы с регистрами передачи параметров в функции были.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post

6 страниц V  « < 4 5 6
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 11:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01462 секунд с 7
ELECTRONIX ©2004-2016