Easyelectronics.ru

Электроника для всех
Текущее время: 24 сен 2018, 05:20

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: STM8 + COSMIC Чтение Unique ID [РЕШЕНО]
СообщениеДобавлено: 28 дек 2017, 18:44 
Заглядывает иногда

Зарегистрирован: 19 июн 2013, 16:35
Сообщения: 41
Возникла сложность при чтении Unique ID (адрес в памяти 0х4865). Вроде все элементарно, а считываются нули... причем всеми известными мне способами... Вот три способа которые я пробовал. Все без результата, всегда читается НОЛЬ

1. Просто пытался извлечь значение по указанному адресу в перемааенную
Код:
u8 id[12];

   id[0] = *((u8 *)0x4865);
   id[1] = *((u8 *)0x4866);
   id[2] = *((u8 *)0x4867);
   id[3] = *((u8 *)0x4868);
   id[4] = *((u8 *)0x4869);
   id[5] = *((u8 *)0x486A);
   id[6] = *((u8 *)0x486B);
   id[7] = *((u8 *)0x486C);
   id[8] = *((u8 *)0x486D);
   id[9] = *((u8 *)0x486E);
   id[10] = *((u8 *)0x486F);
   id[11] = *((u8 *)0x4870);

2. Попытался создать указатель на указанный адрес
Код:
u8 id[12], i;
u8 * id_ptr = (u8 *)0x4865;

   i = 12;
   while(i--){
      id[11-i] = *id_ptr;
      id_ptr++;
   }

3. Создал новую секцию, по нужным мне адресам, и создал переменную в этой секции.
Код:
#pragma section (id)
u8 my_id;
#pragma section ()

*.lkf писал(а):
# Segment configuration - section reserved for STVD
#<BEGIN SEGMENT_CONF>
# Segment Code,Constants:
+seg .const -b 0x8080 -m 0x7f80 -n .const -it
+seg .text -a .const -n .text
# Segment Eeprom:
+seg .eeprom -b 0x4000 -m 0x400 -n .eeprom
# Segment ID:
+seg .id -b 0x4865 -m 0xc -n .id
# Segment Zero Page:
+seg .bsct -b 0x0 -m 0x100 -n .bsct
+seg .ubsct -a .bsct -n .ubsct
+seg .bit -a .ubsct -n .bit -id
+seg .share -a .bit -n .share -is
# Segment Ram:
+seg .data -b 0x100 -m 0x500 -n .data
+seg .bss -a .data -n .bss
#<END SEGMENT_CONF>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 + COSMIC Чтение Unique ID [РЕШЕНО]
СообщениеДобавлено: 28 дек 2017, 19:27 
Заглядывает иногда

Зарегистрирован: 19 июн 2013, 16:35
Сообщения: 41
РЕШЕНО

В общем, проблема в том что я ошибся с адресом, начальный адрес у моего микроконтроллера с ID 0x48CD и если чтить с него то работает. Вариант обявить переменную сразу в нужном сегменте не заработал, почему не знаю, если есть мысли то поделитесь.

Так же работает и такой вариант:
Код:
volatile char ID_0 @0x48CD;
volatile char ID_1 @0x48CE;
volatile char ID_2 @0x48CF;
volatile char ID_3 @0x48D0;
volatile char ID_4 @0x48D1;
volatile char ID_5 @0x48D2;
volatile char ID_6 @0x48D3;
volatile char ID_7 @0x48D4;
volatile char ID_8 @0x48D5;
volatile char ID_9 @0x48D6;
volatile char ID_10 @0x48D7;
volatile char ID_11 @0x48D8;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 + COSMIC Чтение Unique ID [РЕШЕНО]
СообщениеДобавлено: 29 дек 2017, 09:24 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5005
А зачем объявлять ID как переменную?
Этож константа...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 + COSMIC Чтение Unique ID [РЕШЕНО]
СообщениеДобавлено: 29 дек 2017, 16:48 
Заглядывает иногда

Зарегистрирован: 19 июн 2013, 16:35
Сообщения: 41
dosikus_2 писал(а):
А зачем объявлять ID как переменную?
Этож константа...

в данном случаи это не на что не влияет, изменить ее все равно не получиться, просто лишний классификатор "const" не пришлось писать, а если вас смущает "volatile", то это просто доброе правило работы с железными регистрами (опять же в данном случаи не важно).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 + COSMIC Чтение Unique ID [РЕШЕНО]
СообщениеДобавлено: 29 дек 2017, 18:07 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5005
А менять то зачем? Обычно ID считывают и усе.
Я не понимаю зачем эти танцы...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 + COSMIC Чтение Unique ID [РЕШЕНО]
СообщениеДобавлено: 29 дек 2017, 19:33 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3600
Откуда: Кемеровская область, Киселевск
zwitch писал(а):
dosikus_2 писал(а):
А зачем объявлять ID как переменную?
Этож константа...

в данном случаи это не на что не влияет, изменить ее все равно не получиться, просто лишний классификатор "const" не пришлось писать, а если вас смущает "volatile", то это просто доброе правило работы с железными регистрами (опять же в данном случаи не важно).

Надо как const обьявлять, они во флеш тогда переезжают, чтобы не занимать ОЗУ.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB