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

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

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

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

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

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


 
Опции темы
Непрочитано 29.12.2013, 22:14  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Trial период в ARM

Хотела спросить совета. Клиент хочет купить некое устройство, но платить готов только опробовав его в течение месяца. Поскольку особого доверия именно к этому клиенту нет, а продать хочется, то есть смысл программно ограничить срок работы.
Собственно идея: Т.к. в устройстве используется STM32F103RG задействовать RTC и использовать прерывания от alarm-а и в обработчике которого прописать нечто вроде такого
flash_unlock();
flash_erase_all_pages();
Честно предупредить клиента, что через месяц устройсто перестанет работать. Алгоритм планируется такой:
Батарейка вставлена, устройсво запущено впервые.
1. RTC_SetAlarm(60); //Через 60 секунд будут стерты все страницы flash
2. У программиса есть эти 60 секунд чтобы RTC_SetAlarm(0x278D00); //30 дней.
Не важно как, кнопку нажать или по UART...
Это для народа, который у нас ушлый, может догататься и батарейку через 29 дней достать-вставить....

Собственно спрашиваю у гуру STM нет ли каких подводных камней в таком подходе....
Реклама:
Jane9226 вне форума  
Непрочитано 30.12.2013, 00:02  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Trial период в ARM

Сообщение от Jane9226 Посмотреть сообщение
Хотела спросить совета. Клиент хочет купить некое устройство, но платить готов только опробовав его в течение месяца. Поскольку особого доверия именно к этому клиенту нет, а продать хочется, то есть смысл программно ограничить срок работы.
Собственно идея: Т.к. в устройстве используется STM32F103RG задействовать RTC и использовать прерывания от alarm-а и в обработчике которого прописать нечто вроде такого
flash_unlock();
flash_erase_all_pages();
Честно предупредить клиента, что через месяц устройсто перестанет работать. Алгоритм планируется такой:
Батарейка вставлена, устройсво запущено впервые.
1. RTC_SetAlarm(60); //Через 60 секунд будут стерты все страницы flash
2. У программиса есть эти 60 секунд чтобы RTC_SetAlarm(0x278D00); //30 дней.
Не важно как, кнопку нажать или по UART...
Это для народа, который у нас ушлый, может догататься и батарейку через 29 дней достать-вставить....

Собственно спрашиваю у гуру STM нет ли каких подводных камней в таком подходе....
А нельзя перенести действия в область официальных отношений? Юридический договор о триал периоде, обязательства возврата устройства. В случае невозврата - барьерная неустойка, чтоб мало не показалось. Подписи, мокрые печати. Любой суд обяжет возместить. Да и потом, ОНО надо в одном экземпляре? Если это серия, то о чем речь, рвем серию...
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 30.12.2013, 01:23  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Trial период в ARM

1. впаяйте батарейку RTC (и можете контролировать ее уровень - при отсутствии см.п.5/6)
2. напишите и 1 раз запустите загрузчик для установки какого нибудь
особого числа в RTC, от которого будете считать 30 дней (защита от тупого обнуления)
3. прошейте свою прогу и следите за датой в RTC
4. при достижении 30 дней трите кристалл
5. если число в RTC будет вне диапазона - трите кристалл - налицо попытка взлома.
6. при потере частоты 32kHz - аналогично
7. не забудьте поставить защиту на чтение/отладку

Последний раз редактировалось Hives; 30.12.2013 в 01:27.
Hives вне форума  
Сказали "Спасибо" Hives
Jane9226 (30.12.2013)
Непрочитано 30.12.2013, 01:27  
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: Trial период в ARM

Можно привязаться к кол-ву включений. На 100 включение стирать все
Gnider вне форума  
Непрочитано 30.12.2013, 02:00  
gary2007
Почётный гражданин KAZUS.RU
 
Аватар для gary2007
 
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
gary2007 на пути к лучшему
По умолчанию Re: Trial период в ARM

Зачем стирать?
Достаточно сделать так, чтобы демопрошивка каждые 30 секунд "действовала на нервы" какой нибудь рекламой, т.е. прерывала нормальную работу на те же 30 сек. Далее нормальная работа возобновлялась.
И так по циклу.
__________________
Мелочи не решают главного. Они решают всё!
gary2007 вне форума  
Непрочитано 30.12.2013, 02:31  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Re: Trial период в ARM

Цитата:
6. при потере частоты 32kHz - аналогично
Спасибо, дельный совет, будем тактироваться от внутреннего генератора, мне точность не нужна...
Цитата:
А нельзя перенести действия в область официальных отношений?
Можно, но мне более интересена техническая сторона чем юридическая.
Jane9226 вне форума  
Непрочитано 30.12.2013, 03:16  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Trial период в ARM

Сообщение от gary2007 Посмотреть сообщение
чтобы демопрошивка каждые 30 секунд прерывала нормальную работу на те же 30 сек
не всегда возможно и чревато, вплоть до нарушения ТБ
Сообщение от Jane9226 Посмотреть сообщение
мне более интересена техническая сторона чем юридическая
хотите оженить клиента?
jump вне форума  
Непрочитано 30.12.2013, 06:54  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Re: Trial период в ARM

Сообщение от Jane9226 Посмотреть сообщение
Спасибо, дельный совет, будем тактироваться от внутреннего генератора, мне точность не нужна...
Облом, от внутреннего генератора (LSI) счетчик не тикает, когда основное питание снято и продолжает тикать с того места, где остановился, когда включаешь (батарейка естественно впаяна) От внешнего кварца все тикает как нужно, но тут другой облом. Объясню на примере. Скажем
RTC_SetAlarm(60); /*Через 60 секунд сработает аларм и прошивка умрет смертью храбрых */
Запускаем, ждем 40 секунд и... выключаем основное питание. Ждем еще 30 секунд, включаем и счетчик продолжает тикать с 70 ти секунд....успешно пройдя "суицидную" цифру 60. Вывод: Хотя счетчик (CNT) и был равен регисту ALR, но поскольку питание было выключено флаг не был установлен, прерывание не сработало после подачи питания. Придется видимо как то обходиться без аларма...
Jane9226 вне форума  
Непрочитано 30.12.2013, 09:56  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Trial период в ARM

Если отключить батарейку, то у часиков слетит инициализация и значения 4 энергонезависимых регистров в них. Так что определить отключение батерейки нет проблем.
Boba_spb вне форума  
Непрочитано 30.12.2013, 10:17  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: Trial период в ARM

Я делал так, создал константу с рассчитанным заранее значением и переменную во флеши, при каждом запуске программы идет их сравнение, в программе запускаешь любой таймер с нужной настройкой и постоянно инкрементируешь переменную! когда значение переменой превышает значение константы делаем что нужно для неработоспособности проги! стирать кристалл думаю не стоит так как после оплаты можно предусмотреть какую нибудь хитрую манипуляцию для лечения!
neyvert вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги dosikus Делимся опытом 11242 29.12.2015 23:45
AVR32 vs ARM CortexM-3? Archer07 Микроконтроллеры, АЦП, память и т.д 17 30.01.2012 16:04
ARM начинающим с нуля - KEIL с лекарсвом, методички, книги avr123-nm-ru Микроконтроллеры, АЦП, память и т.д 22 31.03.2010 00:24
ARM & Linux svad0 Микроконтроллеры, АЦП, память и т.д 4 13.02.2010 12:54
Помогите связать ARM и IAR через WIGGLER kibo Микроконтроллеры, АЦП, память и т.д 1 22.12.2008 18:38


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


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