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

 
 
> вопрос по fuse
MicronSys
сообщение Dec 20 2007, 11:50
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 106
Регистрация: 12-05-05
Пользователь №: 4 946



Есть ли возможность провить fuse прямо с программы
тут прикол в том что давичи я отдовал партию своих приборов
и перед отдачей решил проверить не оставил ли я доступ к прошивке
из 50 устройст 2 оказались полность с открытой прошивкой ( а она денег стоит )

так вот можна ли изменять fuse на лету или хотябы прочитать их
конкретно интересуют Lock и BootLock help.gif
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 20)
vesago
сообщение Dec 20 2007, 11:54
Сообщение #2


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Никак нельзя. Вот по этому я и полюбил консольные программаторы. Прописал в батнике нужные фузы и только тискаешь на батник.
Go to the top of the page
 
+Quote Post
MicronSys
сообщение Dec 20 2007, 12:02
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 106
Регистрация: 12-05-05
Пользователь №: 4 946



Цитата(vesago @ Dec 20 2007, 15:54) *
Никак нельзя. Вот по этому я и полюбил консольные программаторы. Прописал в батнике нужные фузы и только тискаешь на батник.


ВО БЛИН ПОПАЛ
так можно и зароботка лишится
Go to the top of the page
 
+Quote Post
vesago
сообщение Dec 20 2007, 12:15
Сообщение #4


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Я думаю, маловероятно, что юзер будет пытаться слить прошивку дабы клонировать железку.
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Dec 20 2007, 12:21
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Цитата(MicronSys @ Dec 20 2007, 16:02) *
ВО БЛИН ПОПАЛ
так можно и зароботка лишится

прочитать можно, в IAR в файле <intrinsics.h> есть функции, а где-то в этом форуме была подобная тема. Если не найдете попробую поискать в сохраненных. Пробовал читать, читалось smile.gif
Go to the top of the page
 
+Quote Post
vesago
сообщение Dec 20 2007, 15:03
Сообщение #6


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Гм, действительно. Век живи - век учись...

Код
#define _SPM_GET_LOCKBITS()  \
  __AddrToZByteToSPMCR_LPM((void __flash*)0x0001, 0x09)

#define _SPM_GET_FUSEBITS()  \
  __AddrToZByteToSPMCR_LPM((void __flash*)0x0000, 0x09)
Go to the top of the page
 
+Quote Post
arttab
сообщение Dec 21 2007, 01:04
Сообщение #7


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

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Насколько помню про самопрограммиравание AVR, то fuse можно изменить. Гляньте первоисточники.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
MicronSys
сообщение Dec 21 2007, 09:45
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 106
Регистрация: 12-05-05
Пользователь №: 4 946



да это хорошо
а можит кто то подскажит как это сделать в winavr
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Dec 22 2007, 20:17
Сообщение #9


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Цитата(&-rey @ Dec 20 2007, 15:21) *
прочитать можно, в IAR в файле <intrinsics.h> есть функции, а где-то в этом форуме была подобная тема. Если не найдете попробую поискать в сохраненных. Пробовал читать, читалось smile.gif



может подскажете еще форму для set_fuse_bits smile.gif


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
man with no name
сообщение Dec 22 2007, 21:13
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586



см. avr/boot.h Там есть __boot_lock_bits_set
Go to the top of the page
 
+Quote Post
Guest_Цыкетчик_*
сообщение Sep 24 2008, 10:02
Сообщение #11





Guests






Цитата(a123-flex @ Dec 23 2007, 00:17) *
может подскажете еще форму для set_fuse_bits smile.gif

Такой нет. И быть не иожет. По определению. Поскольку в системе команд AVR есть команды программирования (т.е. изменения с '1' на '0') LOCK-битов: BLB11,BLB10,BLB01,BLB00 защиты секции программы и секции загрузчика (но нет команд "разлочивания", т.е. изменения LOCK-битов с '0' на '1'). Также нет команд изменения FUSE-битов. Также нет команд программирования / стирания LOCK-битов защиты от "считывания/записи программатором": LB1,LB2. Так что если Вы при прошивке девайса не запрограммировали LOCK-биты LB1 и LB2 и отдали девайс заказчику, то Ваша прога залочить сама себя от считывания программатором уже не сможет и заказчику ничто не помешает считать Вашу прошивку программатором

P.S. Для тех кто не в курсе LOCK- и FUSE-биты - разные вещи.
Go to the top of the page
 
+Quote Post
Guest_Цыкетчик_*
сообщение Sep 24 2008, 13:39
Сообщение #12





Guests






Цитата(Цыкетчик @ Sep 24 2008, 14:02) *
Так что если Вы при прошивке девайса не запрограммировали LOCK-биты LB1 и LB2 и отдали девайс заказчику, то Ваша прога залочить сама себя от считывания программатором уже не сможет и заказчику ничто не помешает считать Вашу прошивку программатором

Хотя можно сделать вот что. Прога при запуске считывает LOCK-биты LB1 и LB2. И если они не запрограммированы (не равны '0') стирают самую себя во FLASH. Поэтому если заказчик считает прошивку, то он увидет только $FFFF во всех ячейках
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 24 2008, 13:59
Сообщение #13


кекс
******

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



Цитата(Цыкетчик @ Sep 24 2008, 13:02) *
Поскольку в системе команд AVR есть команды программирования (т.е. изменения с '1' на '0') LOCK-битов: BLB11,BLB10,BLB01,BLB00 защиты секции программы и секции загрузчика (но нет команд "разлочивания", т.е. изменения LOCK-битов с '0' на '1').


.....
Так что если Вы при прошивке девайса не запрограммировали LOCK-биты LB1 и LB2 и отдали девайс заказчику, то Ваша прога залочить сама себя от считывания программатором уже не сможет и заказчику ничто не помешает считать Вашу прошивку программатором

Какая-то глобальная нестыковка получается.
Есть команды залочивания, но почему-то нельзя ими пользователься.
Уж будьте добры, лучше цитаты из ДШ приводите. ;>
Go to the top of the page
 
+Quote Post
bill_vs
сообщение Sep 24 2008, 14:07
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 16-04-05
Из: СПб
Пользователь №: 4 208



Цитата(Цыкетчик @ Sep 24 2008, 17:39) *
Хотя можно сделать вот что. Прога при запуске считывает LOCK-биты LB1 и LB2. И если они не запрограммированы (не равны '0') стирают самую себя во FLASH. Поэтому если заказчик считает прошивку, то он увидет только $FFFF во всех ячейках

Ну, стирать-то не обязательно. После прошивки должна следовать проверка функционирования изделия. Достаточно после анализа LOCK бит чем-нибудь этот факт проиндицировать и отказаться правильно работать.
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 24 2008, 14:14
Сообщение #15


кекс
******

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



Цитата(bill_vs @ Sep 24 2008, 17:07) *
Ну, стирать-то не обязательно. После прошивки должна следовать проверка функционирования изделия. Достаточно после анализа LOCK бит чем-нибудь этот факт проиндицировать и отказаться правильно работать.

вообще достаточно автоматизировать процесс прошивки.
bat'ник которым фузы, локи, и бутлоадер прошиваются одновременно.

И не тратить флеш память на код чтения локов в программе. Для бутлоадера каждое слово флеш критично.
Go to the top of the page
 
+Quote Post
Guest_Цыкетчик_*
сообщение Sep 24 2008, 14:23
Сообщение #16





Guests






Цитата(defunct @ Sep 24 2008, 17:59) *
Какая-то глобальная нестыковка получается.
Есть команды залочивания, но почему-то нельзя ими пользователься.
Уж будьте добры, лучше цитаты из ДШ приводите. ;>

Почему же нестыковка?

Просто LOCK-биты бывают двух "типов":
1.Для блокировки чтения командой LPM и/или записи командой SPM ячеек FLASH самим процессором: BLB11,BLB10,BLB01,BLB00
2.Для блокировки чтения и/или записи ячеек FLASH внешним девайсом (программатором): LB1, LB2

LOCK-биты первого типа можно как читать, так и изменять программно. Причём изменять можно только с '1' на '0'.
А LOCK-биты второго типа программно можно только читать.

Что непонятного то? 07.gif

Цитата(bill_vs @ Sep 24 2008, 18:07) *
Ну, стирать-то не обязательно. После прошивки должна следовать проверка функционирования изделия. Достаточно после анализа LOCK бит чем-нибудь этот факт проиндицировать и отказаться правильно работать.

Но тогда что помешает юзеру взять и считать эту прошивку программатором?

Где же тут тогда защита прошивки от "постороннего глазу"? cranky.gif

Цитата(defunct @ Sep 24 2008, 18:14) *
вообще достаточно автоматизировать процесс прошивки.
bat'ник которым фузы, локи, и бутлоадер прошиваются одновременно.

А что помешает продвинутому юзверю взять..Да и зарЭмить строчку в BAT-нике , в которой Вы устанавливаете LOCK-биты? twak.gif

Сообщение отредактировал Цыкетчик - Sep 24 2008, 14:19
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 24 2008, 14:43
Сообщение #17


кекс
******

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



Цитата(Цыкетчик @ Sep 24 2008, 17:23) *
А что помешает продвинутому юзверю взять..Да и зарЭмить строчку в BAT-нике , в которой Вы устанавливаете LOCK-биты? twak.gif

Если это сотрудник - его вероятно уволят..
А если не сотрудник, то простите у какого такого продвинутого юзверя будет доступ к этому батнику?

Продвинутый юзер может заливать по пользовательскому интерфесу (232 / 485 / Eth) нужную ему пользовательскую программу в уже подготовленный и залоченный девайс.
Цитата
Что непонятного то?

Быстро читал. Понял как программно лочить локи можно и в то же время программно нельзя лочить локи. Сейчас уже ясно что Вы имели в виду.
Go to the top of the page
 
+Quote Post
bill_vs
сообщение Sep 24 2008, 15:05
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 16-04-05
Из: СПб
Пользователь №: 4 208



Цитата(Цыкетчик @ Sep 24 2008, 18:23) *
Но тогда что помешает юзеру взять и считать эту прошивку программатором?

Где же тут тогда защита прошивки от "постороннего глазу"?


А у Вас "юзер" сам прошивает? Или все-таки Вы или Ваши сотрудники?

Если после прошивки изделие проверяется, то не "залоченое" оно не попадёт к пользователю.
Go to the top of the page
 
+Quote Post
smk
сообщение Sep 24 2008, 15:07
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
так вот можна ли изменять fuse на лету или хотябы прочитать

Да без проблем. Используйте студию и програматор под нее. В исходном коде пишите ну например:
FUSES =
{
.low = (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0),
.high = (FUSE_SPIEN & FUSE_BODLEVEL1 & FUSE_BODLEVEL0),
.extended = EFUSE_DEFAULT,
};

LOCKBITS = (LB_MODE_1);

Это чтоб при прошивке сразу фузы правильно ставились. Ну а потом ручками в панели управления программатором можно и LB_MODE_3 установить.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Guest_Цыкетчик_*
сообщение Sep 24 2008, 15:50
Сообщение #20





Guests






Цитата(bill_vs @ Sep 24 2008, 19:05) *
А у Вас "юзер" сам прошивает? Или все-таки Вы или Ваши сотрудники?

Вот что сказал топикстартер:
Цитата(MicronSys @ Dec 20 2007, 15:50) *
тут прикол в том что давичи я отдовал партию своих приборов
и перед отдачей решил проверить не оставил ли я доступ к прошивке
из 50 устройст 2 оказались полность с открытой прошивкой ( а она денег стоит )


Цитата(bill_vs @ Sep 24 2008, 19:05) *
Если после прошивки изделие проверяется, то не "залоченое" оно не попадёт к пользователю.

Никогда не говорите "никогда". Всякое может быть. Прошивщики могут банально "забыть" запрограммировать LOCK-биты. Да просто помеха пробежала во время программирования LOCK-битов. Мало ли что? Лучше всё чтобы при подаче питания на процессор прога проверяла "а точно ли я залочена?" И если нет - стирать нах всю важную часть проги. Оставляем только индикацию "юзверь! Я не залочена. Перепрошей меня и залочь"

Цитата(smk @ Sep 24 2008, 19:07) *
Да без проблем. Используйте студию и програматор под нее. В исходном коде пишите ну например...

Разве программаторы научились понимать СИшные исходники? Простите, не знал
Цитата(smk @ Sep 24 2008, 19:07) *
Ну а потом ручками в панели управления программатором можно и LB_MODE_3 установить.

Человек спрашивал:
Цитата(MicronSys @ Dec 20 2007, 15:50) *
Есть ли возможность провить fuse прямо с программы

Т.е. чтоб сама прога в процессоре правила LOCK-биты, а Вы ему "ручками" советуете. Из-за того что "ручками" вышло то, о чём топикстартер написал:
Цитата(MicronSys @ Dec 20 2007, 15:50) *
тут прикол в том что давичи я отдовал партию своих приборов
и перед отдачей решил проверить не оставил ли я доступ к прошивке
из 50 устройст 2 оказались полность с открытой прошивкой


Сообщение отредактировал Цыкетчик - Sep 24 2008, 15:54
Go to the top of the page
 
+Quote Post
bill_vs
сообщение Sep 24 2008, 16:43
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 16-04-05
Из: СПб
Пользователь №: 4 208



Цитата(Цыкетчик @ Sep 24 2008, 19:50) *
Вот что сказал топикстартер:
Никогда не говорите "никогда". Всякое может быть. Прошивщики могут банально "забыть" запрограммировать LOCK-биты. Да просто помеха пробежала во время программирования LOCK-битов. Мало ли что? Лучше всё чтобы при подаче питания на процессор прога проверяла "а точно ли я залочена?" И если нет - стирать нах всю важную часть проги.

Либо я плохо написал, либо Вы невнимательно читаете.
На Ваше
Цитата(Цыкетчик @ Sep 24 2008, 17:39) *
Хотя можно сделать вот что. Прога при запуске считывает LOCK-биты LB1 и LB2. И если они не запрограммированы (не равны '0') стирают самую себя во FLASH. Поэтому если заказчик считает прошивку, то он увидет только $FFFF во всех ячейках

я ответил
Цитата(bill_vs @ Sep 24 2008, 18:07) *
Ну, стирать-то не обязательно. После прошивки должна следовать проверка функционирования изделия. Достаточно после анализа LOCK бит чем-нибудь этот факт проиндицировать и отказаться правильно работать.

Объясняю подробнее - рабочая программа в изделии считав LOCK-биты при старте, не стирает себя, а даёт знать об этом Вам.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:40
Рейтинг@Mail.ru


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