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

 
 
 
Reply to this topicStart new topic
> Можно ли LPM-командой прочитать LOCK-биты LB1 и LB2?, А то BLB12,BLB11,BLB01,BLB00 читаются а LB1 и LB2 всегда '1'
Боинг749
сообщение Aug 31 2008, 10:02
Сообщение #1


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

Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801



Можно ли SPM-командой прочитать LOCK-биты LB1 и LB2?
А то BLB12,BLB11,BLB01,BLB00 читаются а LB1 и LB2 всегда читаются как '1'
Подскажите

P.S. Пардон. Не SPM-командой, а LPM, не более чем через 3 такта после загрузки в SPMCR значения 0b00001001 разумеется



Сообщение отредактировал makc - Sep 1 2008, 02:42
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 31 2008, 21:00
Сообщение #2


кекс
******

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



Цитата(Боинг749 @ Aug 31 2008, 13:02) *
Можно ли LPM-командой прочитать LOCK-биты LB1 и LB2?

можно, по крайней мере на m16, m162, m32, m128 прекрасно читаются.
Go to the top of the page
 
+Quote Post
west329_
сообщение Sep 1 2008, 05:46
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



а програмно записать в них (закрыть доступ к прошивке) ??
Go to the top of the page
 
+Quote Post
GDI
сообщение Sep 1 2008, 07:50
Сообщение #4


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Записать нельзя, только проверить и как то сигнализировать что прошивка не залочена, вывести сообщение на ЖКИ или светодиодом как то хитро помигать.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
west329_
сообщение Sep 1 2008, 08:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Цитата(GDI @ Sep 1 2008, 10:50) *
Записать нельзя, только проверить и как то сигнализировать что прошивка не залочена, вывести сообщение на ЖКИ или светодиодом как то хитро помигать.

Есть ли возможность на С считать эти значения, компилятор к примеру ИАР, или нужет только аасемблер ?
Go to the top of the page
 
+Quote Post
GDI
сообщение Sep 1 2008, 09:01
Сообщение #6


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



У иара есть макросы на них, как впрочем и на другие команды, покопайтесь в хидерах. И вообще в хидерах полезно копаться, можно много интересного найти...


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 1 2008, 10:52
Сообщение #7


кекс
******

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



Цитата(west329_ @ Sep 1 2008, 11:10) *
Есть ли возможность на С считать эти значения, компилятор к примеру ИАР, или нужет только ассемблер ?

Можно не создавая .s файлов
Код
unsigned char get_locks(void)
{
   asm("push r31");
   asm("push r30");
   asm("ldi  r30, 1");
   asm("ldi  r31, 9");
   asm("cli");  
   asm("out 0x37, r31");  // out SMPCR, BLBSET + SPMEN
   asm("clr  r31");
   asm("lpm r16, z");
   asm("sei");
   asm("pop  r30");
   asm("pop  r31");
}
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 1 2008, 11:38
Сообщение #8


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

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



Ну тогда уже вот так
Код
__z unsigned char _get_locks(unsigned char const __flash *p, char pv);

#pragma optimize=no_inline
unsigned char get_locks(void)
{
  return _get_locks((unsigned char const __flash *)1,(1<<BLBSET)+(1<<SPMEN));
}

#pragma optimize=no_inline
__z unsigned char _get_locks(unsigned char const __flash *p, char pv)
{
  unsigned char c;
  __disable_interrupt();
  SPMCSR=pv;
  c=__load_program_memory(p);
  __enable_interrupt();
  return c;
}


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Боинг749
сообщение Sep 8 2008, 20:01
Сообщение #9


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

Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801



Цитата(Боинг749 @ Aug 31 2008, 14:02) *
Можно ли SPM-командой прочитать LOCK-биты LB1 и LB2?

Можно. Исправил багу в программе. Всё прекрасно читается. Тему можно закрыть
Go to the top of the page
 
+Quote Post

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

 


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


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