Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

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

Ответ
 
Опции темы Опции просмотра
Старый 31.08.2016, 15:16   #501
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Пробовал разные уровни защиты от чтения, пока не записал (через аппаратный загрузчик STM32F407) в OptionBytes RDP=Level2. М
Зачем же ты так сделал?
вначале доки почитать надо же....
__________________

Vanizma вне форума   Ответить с цитированием
Старый 31.08.2016, 16:02   #502
diger67
Senior Member
 
Регистрация: 18.03.2016
Возраст: 52
Сообщений: 202
Вес репутации: 211/19
diger67 has a spectacular aura aboutdiger67 has a spectacular aura aboutdiger67 has a spectacular aura about
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
Когда уже доки читать начнём???
Вы правы, не читал, потому как нужды в использовании защиты кода пока не было. Предложил все варианты как сам выводил из ступора режим загрузки в камень. Все знать невозможно, знания приходят с практикой.
diger67 вне форума   Ответить с цитированием
Старый 31.08.2016, 16:11   #503
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Vanizma Посмотреть сообщение
Зачем же ты так сделал?
вначале доки почитать надо же....
А доку я читал, только RM0090, а там не написано, что Level2 сделает невозможным запуск аппаратного загрузчика, я оттуда уяснил, что не будет работать отладка и загрузка из ОЗУ (третий скриншот). Это в PM0081 написано, что Level 2 невозможно отменить.

Теперь уже сделал. Хорошо, что в запасе был один микроконтроллер. Перепаял. Заработало. Это я вывел МК из строя путем записи данных командой WriteMemory(0x1FFFC001, 0xCC), т.е. запись данных по адресу.

Теперь добавил в свою программу поддержку команд ReadoutProtect() и ReadoutUnprotect(). Инициализировал аппаратный загрузчик, обновил прошивку, мое приложение заработало, нажал кнопку ReadoutProtect, команда выполнилась и снова аппаратный загрузчик замолчал. Оказывается, что эта команда устанавливает уровень Level1, т.е. значение по адресу 0x1FFFC001 равно чему-то, но точно не 0xAA (Level 0) и не 0xCC (Level 2). После этого аппаратный загрузчик не отвечает, хотя протокол поддерживает команду ReadoutUnprotect. Т.о., если с использовать команду ReadoutProtect при работе аппаратного загрузчика, то ReadoutUnprotect выполнить уже не получится, т.к. загрузчик больше не инициализируется (не отвечает). А вот утилита ST-LINK Utility через ST-LINK V2 (интерфейс SW) видит микроконтроллер, понимает, что у него установлен Level1 и через её меню можно изменить Level1 на Level0. Похоже, что это косяк в аппаратном загрузчике и этот баг нигде не описан. Т.е. при использовании команд аппаратного загрузчика (через USART) не рекомендуется устанавливать ReadoutProtection, т.к. после этого связаться с загрузчиком через USART уже не получится, только через SW. А разъем для подключения отладчика на корпусе готового устройства вряд ли у кого-то предусмотрен.
Миниатюры
Can not read memory.PNG   Level 1.PNG   0xCC.PNG  
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 31.08.2016 в 16:19.
Pridnya вне форума   Ответить с цитированием
Старый 31.08.2016, 16:18   #504
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Теперь уже сделал. Хорошо, что в запасе был один микроконтроллер. Перепаял. Заработало. Это я вывел МК из строя путем записи данных в регистр OptionBytes командой WriteMemory(0x1FFFC001, 0xCC), т.е. запись данных по адресу.

Теперь добавил в свою программу поддержку команд ReadoutProtect() и ReadoutUnprotect(). Инициализировал аппаратный загрузчик, обновил прошивку, мое приложение заработало, нажал кнопку ReadoutProtect, команда выполнилась и снова аппаратный загрузчик замолчал. Оказывается, что эта команда устанавливает уровень Level1, т.е. значение по адресу 0x1FFFC001 равно чему-то, но точно не 0xAA (Level 0) и не 0xCC (Level 2). После этого аппаратный загрузчик не отвечает, хотя протокол поддерживает команду ReadoutUnprotect. Т.о., если с использовать команду ReadoutProtect при работе аппаратного загрузчика, то ReadoutUnprotect выполнить уже не получится, т.к. загрузчик больше не инициализируется (не отвечает). А вот утилита ST-LINK Utility через ST-LINK V2 (интерфейс SW) видит микроконтроллер, понимает, что у него установлен Level1 и через её меню можно изменить Level1 на Level0. Похоже, что это косяк в аппаратном загрузчике и этот баг нигде не описан. Т.е. при использовании команд аппаратного загрузчика (через USART) не рекомендуется устанавливать ReadoutProtection, т.к. после этого связаться с загрузчиком через USART уже не получится, только через SW. А разъем для подключения отладчика из корпуса готового устройства вряд ли у кого-то предусмотрен.
не понял в чем косяк?
В RDP 1 аппаратный загрузчик и отладка не работают.
Стартовать можно только с user code. Так задумано

Цитата:
1.2 Read protection Level 1
When the read protection level 1 is activated, no access (read, erase, and program) to Flash
memory or backup SRAM can be performed via debug features such as Serial Wire or
JTAG even while booting from SRAM or system memory bootloader.
However when booting from Flash memory, accesses to Flash memory and backup SRAM
from user code are allowed.
Any read request to the protected Flash memory generates a bus error.
Disabling RDP level 1 protection by re-programming RDP option byte to level 0 leads to a
mass erase.
__________________

Vanizma вне форума   Ответить с цитированием
Старый 31.08.2016, 22:35   #505
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Vanizma Посмотреть сообщение
не понял в чем косяк?
В RDP 1 аппаратный загрузчик и отладка не работают.
Стартовать можно только с user code. Так задумано
Когда цитату даешь, пожалуйста, приводи ссылку на источник, откуда она. Не могу найти (искал в DataSheet, RM0090, PM0081). Пока искал, обнаружил, что у меня 7-я версия RM0090, а на офсайте уже 12-я. Как часто они обновляют свои документы.

Из этой цитаты на английском следует (если я правильно перевел):
После установки Level 1 нет доступа к Flash-памяти и энергонезависимому ОЗУ (чтение, стирание, программирование) через SW, JTAG, загрузке из ОЗУ, или аппаратного загрузчика. ST-LINK V2 не может прочитать память, не может прочитать ячейки с адресами байтов опций, но может как-то узнать значения байтов опций, затем изменит Level 1 на Level 0 что приводит к стиранию всей памяти (рабочего кода пользователя, если он есть).
Однако, при загрузке и выполнении кода пользователя из FLASH-памяти доступ к памяти FLASH-памяти и энергонезависимому ОЗУ есть.
Любой запрос на чтение защищенной FLASH-памяти генерирует ошибку на шине.
Отключение Level 1 и включение Level 0 путем перепрограммирования байтов опций приводит к стиранию всей памяти. Это удалось сделать только через ST-LINK V2 через интерфейс SW.

Так вот, в AN3155 описан протокол обмена с аппаратным загрузчиком, а там есть команда ReadoutProtect, которая как раз изменяет Level0 на Level1 (по умолчанию в чистом МК Level 0, это я после перепайки прочитал). Есть также команда ReadoutUnprotect, которая должна изменить Level 1 на Level 0 (это я так предполагаю). Но аппаратный загрузчик уже не работает, т.е. команда ReadoutUnprotect не будет выполнена. В общем, лучше оставить защиту по умолчанию, level 0, а то Level 1 приводит к невозможности обновиться без стирания через JTAG/SW (вот если в пользовательском коде есть программный загрузчик, то, возможно, с его помощью и можно получить доступ к FLASH, стереть записать, верифицировать...), level 2 вообще подходит только для хорошо отлаженных проектов, в противном случае получим вообще камень.

Какая-то не очень хорошая документация идет к микроконтроллеру, описание размазано по разным документам, на тысячи страниц, документы постоянно обновляются, чувствуется, что писали разные люди, которые мало общались.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 01.09.2016, 08:02   #506
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Когда цитату даешь, пожалуйста, приводи ссылку на источник, откуда она. Не могу найти (искал в DataSheet, RM0090, PM0081). Пока искал, обнаружил, что у меня 7-я версия RM0090, а на офсайте уже 12-я. Как часто они обновляют свои документы.

Из этой цитаты на английском следует (если я правильно перевел):
После установки Level 1 нет доступа к Flash-памяти и энергонезависимому ОЗУ (чтение, стирание, программирование) через SW, JTAG, загрузке из ОЗУ, или аппаратного загрузчика. ST-LINK V2 не может прочитать память, не может прочитать ячейки с адресами байтов опций, но может как-то узнать значения байтов опций, затем изменит Level 1 на Level 0 что приводит к стиранию всей памяти (рабочего кода пользователя, если он есть).
Однако, при загрузке и выполнении кода пользователя из FLASH-памяти доступ к памяти FLASH-памяти и энергонезависимому ОЗУ есть.
Любой запрос на чтение защищенной FLASH-памяти генерирует ошибку на шине.
Отключение Level 1 и включение Level 0 путем перепрограммирования байтов опций приводит к стиранию всей памяти. Это удалось сделать только через ST-LINK V2 через интерфейс SW.

Так вот, в AN3155 описан протокол обмена с аппаратным загрузчиком, а там есть команда ReadoutProtect, которая как раз изменяет Level0 на Level1 (по умолчанию в чистом МК Level 0, это я после перепайки прочитал). Есть также команда ReadoutUnprotect, которая должна изменить Level 1 на Level 0 (это я так предполагаю). Но аппаратный загрузчик уже не работает, т.е. команда ReadoutUnprotect не будет выполнена. В общем, лучше оставить защиту по умолчанию, level 0, а то Level 1 приводит к невозможности обновиться без стирания через JTAG/SW (вот если в пользовательском коде есть программный загрузчик, то, возможно, с его помощью и можно получить доступ к FLASH, стереть записать, верифицировать...), level 2 вообще подходит только для хорошо отлаженных проектов, в противном случае получим вообще камень.

Какая-то не очень хорошая документация идет к микроконтроллеру, описание размазано по разным документам, на тысячи страниц, документы постоянно обновляются, чувствуется, что писали разные люди, которые мало общались.
App note 4701.
У них все нормальные описания в аппноуты вынесены. Мне это не нравится.
__________________

Vanizma вне форума   Ответить с цитированием
Старый 01.09.2016, 08:36   #507
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Спасибо! Нашел. AN4701 Proprietary code read-out protection on microcontrollers of the STM32F4 series. October 2015 DocID027893 Rev 2. Прикольно, что этой AN4701 нет в списке среди других, которые идут к STM32F407VG. С ней предлагается ознакомиться в другом месте.
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 01.09.2016 в 08:42.
Pridnya вне форума   Ответить с цитированием
Старый 01.09.2016, 09:56   #508
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Pridnya Посмотреть сообщение
С ней предлагается ознакомиться в другом месте.
По причине того, что PCROP не будет работать с STM32F407, но важное замечание из AN4701 про Level 1 относится к STM32F407.
Миниатюры
PCROP & STM32F407.PNG  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 01.09.2016, 12:03   #509
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Vanizma Посмотреть сообщение
В RDP 1 аппаратный загрузчик и отладка не работают.
Стартовать можно только с user code. Так задумано
И все-таки для STM32F407 c Level 1 аппаратный загрузчик работает, но не может прочитать память программ и байты опций. И команда ReadoutUnprotect работает, снимает защиту, стирает весь чип, после этого устанавливается Level 0. Похоже, вчера какой-то глюк был (когда аппаратный загрузчик не запускался и только ST-LINK V2 смог изменить Level 1 на level 0).
Цитата:
008 W: [11:47:46.546] 02 FD // GetPID
009 R: [11:47:46.546] 79 01 04 13 79 // 0x413 = STM32F407.
010 W: [11:47:47.468] 01 FE // GetVersion & ProtectionStatus
011 R: [11:47:47.468] 79 31 00 00 79 // v3.1
012 W: [11:47:48.046] 00 FF // Get Command
013 R: [11:47:48.046] 79 0B 31 00 01 02 11 21 31 44 63 73 82 92 79
014 W: [11:47:49.078] 11 EE // ReadMemory(0x1FFFC000, 2); (Читаем байты опций).
015 R: [11:47:49.078] 1F // NACK (память не может быть прочитана)
016 W: [11:47:54.593] 11 EE // ReadMemory(0x08000000, 2); (читаем первые 4 байта памяти программ).
017 R: [11:47:54.593] 1F // NACK (память не может быть прочитана)
018 W: [11:47:59.781] 92 6D // ReadoutUnprotect
019 R: [11:47:59.781] 79 // ACK (команда поддерживается)
020 R: [11:48:15.281] 79 // ACK (защита снята)
021 R: [11:48:15.875] 00 // Это байт принят в результате сброса устройства.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 01.09.2016, 12:24   #510
Vanizma
Senior Member
 
Аватар для Vanizma
 
Регистрация: 30.04.2008
Адрес: Pskov
Сообщений: 4,132
Вес репутации: 4577/130
Vanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond reputeVanizma has a reputation beyond repute
Отправить сообщение для Vanizma с помощью ICQ
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Pridnya Посмотреть сообщение
И все-таки для STM32F407 c Level 1 аппаратный загрузчик работает, но не может прочитать память программ и байты опций. И команда ReadoutUnprotect работает, снимает защиту, стирает весь чип, после этого устанавливается Level 0. Похоже, вчера какой-то глюк был (когда аппаратный загрузчик не запускался и только ST-LINK V2 смог изменить Level 1 на level 0).
а если установить rdp 1 и передернуть питание, стартанет с загрузчика?
__________________

Vanizma вне форума   Ответить с цитированием
Старый 01.09.2016, 12:38   #511
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Vanizma Посмотреть сообщение
а если установить rdp 1 и передернуть питание, стартанет с загрузчика?
Да стартует. Минуту без питания ждал. Одно замечание: после выполнения команды ReadoutProtect не всегда приходит второй ACK, может приходить только один. Вот и вчера такое тоже было. Таймаут ожидания 20 секунд.
Цитата:
014 W: [12:31:42.359] 82 7D
015 R: [12:31:42.359] 79
016 R: [12:32:02.390] Время ожидания операции истекло.
Но потом у защищенного МК можно снять защиту, все нормально.
Цитата:
008 W: [12:40:51.125] 11 EE
009 R: [12:40:51.125] 1F
010 W: [12:40:54.328] 92 6D
011 R: [12:40:54.343] 79
012 R: [12:41:09.828] 79
013 R: [12:41:10.390] 00
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 02.09.2016, 23:09   #512
diger67
Senior Member
 
Регистрация: 18.03.2016
Возраст: 52
Сообщений: 202
Вес репутации: 211/19
diger67 has a spectacular aura aboutdiger67 has a spectacular aura aboutdiger67 has a spectacular aura about
По умолчанию Re: STM32 для чайников

Да, CMSIS полезная штука. Но понимать это начинаешь только тогда, когда пишешь программу чуть сложнее Blink.
diger67 вне форума   Ответить с цитированием
Старый 05.09.2016, 08:08   #513
Consultant
Senior Member
 
Аватар для Consultant
 
Регистрация: 08.11.2013
Сообщений: 328
Вес репутации: 796/34
Consultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to behold
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от diger67 Посмотреть сообщение
Да, CMSIS полезная штука. Но понимать это начинаешь только тогда, когда пишешь программу чуть сложнее Blink.
Еще одного предложения не хватает. Мысль не закончена.
Consultant вне форума   Ответить с цитированием
Старый 05.09.2016, 16:44   #514
diger67
Senior Member
 
Регистрация: 18.03.2016
Возраст: 52
Сообщений: 202
Вес репутации: 211/19
diger67 has a spectacular aura aboutdiger67 has a spectacular aura aboutdiger67 has a spectacular aura about
По умолчанию Re: STM32 для чайников

Парни, нужен совет. Поставил кварц 32 кГц, установил батарейку, инициализировал таймер реального времени и что бы не перезапускать генератор RTC при каждой подаче питания не придумал не чего лучше как записать в DR0 что то типа флага. При повторном запуске или рестарте по Reset часы продолжают идти. Но думаю что я не совсем правильно сделал. Читая RM и апноты не понял какой стандартный флаг RTC или RCC можно использовать для проверки первый раз запускается генератор или он уже работает.
PHP код:
//------------------------------------------------------

bup_dat=RTC_ReadBackupRegister(RTC_BKP_DR0);
    if(
bup_dat != 0x00000001)
    {
        
Whotch_ini();
    }

//------------------------------------------------------
void Whotch_ini(void)
{
    
RTC_InitTypeDef rtc;

    
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWRENABLE);

  
PWR_BackupAccessCmd(ENABLE);
 
  
//RCC_BackupResetCmd(ENABLE);
  //RCC_BackupResetCmd(DISABLE);

    
RCC_LSEConfig(RCC_LSE_ON);
    while(
RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET){}
    
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
        
RCC_RTCCLKCmd(ENABLE);
        
  
//RCC_LSICmd(ENABLE);
  //RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
  //RCC_RTCCLKCmd(ENABLE);

    
    
RTC_WaitForSynchro();
    
  
rtc.RTC_HourFormat RTC_HourFormat_24;
  
rtc.RTC_AsynchPrediv 0x7f;
  
rtc.RTC_SynchPrediv 0xFF;
  
RTC_Init(&rtc);
    
    
RTC_WriteBackupRegister(RTC_BKP_DR00x00000001);
}

//--------------------------------------------------------- 
diger67 вне форума   Ответить с цитированием
Старый 05.09.2016, 17:50   #515
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,945
Вес репутации: 5817/175
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от diger67 Посмотреть сообщение
Читая RM и апноты не понял какой стандартный флаг RTC или RCC можно использовать для проверки первый раз запускается генератор или он уже работает.
Из RM

After a system reset, the application can read the INITS flag in the RTC_ISR register to check if the calendar has been initialized or not. If this flag equals 0, the calendar has not been initialized since the year field is set at its RTC domain reset default value (0x00).To read the calendar after initialization, the software must first check that the RSF flag is set in the RTC_ISR register.

DR0 тоже правильно, но больше для DR
Greg вне форума   Ответить с цитированием
Старый 05.09.2016, 18:02   #516
diger67
Senior Member
 
Регистрация: 18.03.2016
Возраст: 52
Сообщений: 202
Вес репутации: 211/19
diger67 has a spectacular aura aboutdiger67 has a spectacular aura aboutdiger67 has a spectacular aura about
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Greg Посмотреть сообщение
Из RM

After a system reset, the application can read the INITS flag in the RTC_ISR register to check if the calendar has been initialized or not. If this flag equals 0, the calendar has not been initialized since the year field is set at its RTC domain reset default value (0x00).To read the calendar after initialization, the software must first check that the RSF flag is set in the RTC_ISR register.

DR0 тоже правильно, но больше для DR
Огромное спасибо. Освободил регистр Backup, их так мало а они мне понадобятся еще. Теперь все выглядит вот так.
PHP код:
if(RTC_GetFlagStatus(RTC_FLAG_INITS) != RESET)
    {
        
Whotch_ini();
    } 
diger67 вне форума   Ответить с цитированием
Старый 05.09.2016, 18:34   #517
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,945
Вес репутации: 5817/175
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от diger67 Посмотреть сообщение
Огромное спасибо. Освободил регистр Backup, их так мало а они мне понадобятся еще. Теперь все выглядит вот так.
PHP код:
if(RTC_GetFlagStatus(RTC_FLAG_INITS) != RESET)    {        Whotch_ini();    } 
watch обычно имеет смысл наручные (карманные) часы. В нашем контексте правильнее RTC в смысле clock.
Greg вне форума   Ответить с цитированием
Старый 05.09.2016, 18:35   #518
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,945
Вес репутации: 5817/175
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от diger67 Посмотреть сообщение
Огромное спасибо. Освободил регистр Backup, их так мало а они мне понадобятся еще. Теперь все выглядит вот так.
PHP код:
if(RTC_GetFlagStatus(RTC_FLAG_INITS) != RESET)    {        Whotch_ini();    } 
DR0 лучше все-таки занять чем-то типа A5A5
Greg вне форума   Ответить с цитированием
Старый 05.09.2016, 18:36   #519
diger67
Senior Member
 
Регистрация: 18.03.2016
Возраст: 52
Сообщений: 202
Вес репутации: 211/19
diger67 has a spectacular aura aboutdiger67 has a spectacular aura aboutdiger67 has a spectacular aura about
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от Greg Посмотреть сообщение
watch обычно имеет смысл наручные (карманные) часы. В нашем контексте правильнее RTC в смысле clock.
Можно и так, но в плане не пересечься с какой ни будь функцией и переменной решил использовать определение не используемое в библиотеках.
diger67 вне форума   Ответить с цитированием
Старый 25.09.2016, 11:33   #520
diger67
Senior Member
 
Регистрация: 18.03.2016
Возраст: 52
Сообщений: 202
Вес репутации: 211/19
diger67 has a spectacular aura aboutdiger67 has a spectacular aura aboutdiger67 has a spectacular aura about
По умолчанию Re: STM32 для чайников

Занялся разбором общения с NAND по FSMC. Проинициализировал, выставил тайминги. Мелкосхема инициализируется по reset, четко считывается ID, а вот дальше грабли. Читает со сбоями, стираться вообще не желает. Просмотрел кучу примеров в интернете и все безтолку ни чего нового. Сравниваю с даташитом, вроде функции все правильно написаны. Может кто занимался данным вопросом и подсобит советом.
diger67 вне форума   Ответить с цитированием
Старый 28.10.2016, 11:30   #521
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: STM32 для чайников

На этой неделе вспомнил про CooCox Ide для STM32 (компилятор GCC), я когда-то в ней первые шаги делал, свободная IDE без ограничений по размеру кода. А официальный сайт уже не работает, но поисковики о ней еще помнят. У меня еще версия 2 осталась и 1.7 в архиве. Версия 1.7 скачивалась с сайта в виде дистрибутива, а 2 устанавливалась через какой-то менеджер. Может, кто использует и регулярно следил за ней, так подскажите, куда она исчезла?
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 28.10.2016, 11:47   #522
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 48
Сообщений: 3,795
Вес репутации: 6357/147
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Выкинь их на. Про котавасию с поддержкой все ясно было изначально.
То же самое будет и с ембитс...
dosikus вне форума   Ответить с цитированием
Старый 28.10.2016, 12:11   #523
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,754
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: STM32 для чайников

Цитата:
Сообщение от dosikus Посмотреть сообщение
Выкинь их на. Про котавасию с поддержкой все ясно было изначально.
То же самое будет и с ембитс...
А в чем там смысл был? А то интересно. Народ периодически пишет, что освоил то и то, все свободное ПО, а потом хлоп и нету свободного ПО.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 28.10.2016, 12:45   #524
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 48
Сообщений: 3,795
Вес репутации: 6357/147
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: STM32 для чайников

А и не было никакого смысла, одни понты...
На изыдиэлектроникс Ди свой прошивальшик вместе с кокосом продвигал, для остальных унылое г....
Хочешь действительно халявы, стань красноглазым задротом. Возлюби танцы с бубном и регулярную обработку рашпилем...
dosikus вне форума   Ответить с цитированием
Старый 28.10.2016, 14:54   #525
igor_tgru
Senior Member
 
Аватар для igor_tgru
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 699
Вес репутации: 1475/68
igor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud of
По умолчанию Re: STM32 для чайников

Приобрел на алике за "горстку риса"( не мое)))) ) плату с STM32F103, немного ламерский вопрос к dosikus какую среду лучше использовать ? ну дабы меньше огребать граблей. )))))
igor_tgru вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Производительность STM32 Cortex M3 Pridnya Микроконтроллеры других производителей 43 16.10.2013 12:29
fatfs +usb Помогите разобраться сфайловой системой для stm32 Natali Вопросы начинающих 1 19.07.2012 11:00
Проект автономки для авто на pic16f84a Томас Продукция MICROCHIP 14 11.03.2012 21:37
Тайминги для 1-wire Wierus Общетехнические вопросы 15 21.09.2009 21:46
господа, где добыть для ознакомпления среду разработки для FUJITSU dynaco Общетехнические вопросы 2 04.06.2007 06:10


Часовой пояс GMT +3, время: 15:54.


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