_3m 8 4 сентября, 2023 Опубликовано 4 сентября, 2023 · Жалоба Кто знает как из программы определить тип процессора APM32F407 или STM32 ? Смотрел DBGMCU->IDCODE, SCB->CPUID , кода производителя не увидел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 4 сентября, 2023 Опубликовано 4 сентября, 2023 · Жалоба On 9/4/2023 at 5:48 PM, _3m said: Кто знает как из программы определить тип процессора APM32F407 или STM32 ? Смотрел DBGMCU->IDCODE, SCB->CPUID , кода производителя не увидел. Похоже, что никак. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 5 сентября, 2023 Опубликовано 5 сентября, 2023 · Жалоба Но при этом утилита от STM на свой чип распишет все буковки циферки, а остальных может и послать вежливо. Значит как-то различают (возможно по недокументированным полям системной области или в области загрузчика есть что-то). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
0men 2 5 сентября, 2023 Опубликовано 5 сентября, 2023 (изменено) · Жалоба On 9/4/2023 at 10:48 PM, _3m said: Кто знает как из программы определить тип процессора APM32F407 или STM32 ? Смотрел DBGMCU->IDCODE, SCB->CPUID , кода производителя не увидел. гигадевайс определяется вот так // STM32F405 = 0x041 // GD32F405 = 0x7A3 uint16_t Get_JTAG_ID(void) { if( *( uint8_t *)( 0xE00FFFE8 ) & 0x08 ) { return ( ( *( uint8_t *)( 0xE00FFFD0 ) & 0x0F ) << 8 ) | ( ( *( uint8_t *)( 0xE00FFFE4 ) & 0xFF ) >> 3 ) | ( ( *( uint8_t *)( 0xE00FFFE8 ) & 0x07 ) << 5 ) + 1 ; } return 0; } Изменено 6 сентября, 2023 пользователем haker_fox Код оформляется с помощью кнопки <> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 240 5 сентября, 2023 Опубликовано 5 сентября, 2023 · Жалоба 1 час назад, Edit2007 сказал: Но при этом утилита от STM на свой чип распишет все буковки циферки, а остальных может и послать вежливо. Значит как-то различают (возможно по недокументированным полям Если МК - с али, то нельзя гарантировать ровным счётом ничего. У чипов купленных на али, не то что недокументированные поля, но даже хорошо документированные в мануале поля могут иметь совершенно левое содержимое. Недавно одни знакомые (в РФ) приобрели на али партию LPC1758. Чип - как говно мамонта уже, обсосан вдоль и поперёк и весьма популярный с своё время. Содержит в себе уникальный идентификатор экземпляра. Типа - не должно быть в мире другого экземпляра с таким же chip-ID. И так и было. Раньше. Когда покупали у официалов. Но в пришедшей партии часть МК оказалась с chip-ID = 0! Не все. Но теперь даже к тем, в которых он !=0 доверия нет (в уникальности chip-ID). PS: Мораль сей басни такова: если имеешь дело с али, то не можешь быть уверенным ни в чём. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 5 сентября, 2023 Опубликовано 5 сентября, 2023 · Жалоба On 9/5/2023 at 3:10 PM, Edit2007 said: Но при этом утилита от STM на свой чип распишет все буковки циферки, а остальных может и послать вежливо. Значит как-то различают (возможно по недокументированным полям системной области или в области загрузчика есть что-то). Утилита от STM и ST-Link распознают Geehy как родной STM. Т.е. по всем кодам они его воспринимают как STM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 10 6 сентября, 2023 Опубликовано 6 сентября, 2023 · Жалоба 13 часов назад, dimka76 сказал: Т.е. по всем кодам они его воспринимают как STM. Сам я не программист, по этому дилетантский вопрос: Наши программисты попробовав работать с контроллером от Geehy (что то из серии F07X), сказали, что его можно зашивать и он работает, как его аналог от ST, а вот отлаживаться под JTAG-ом у них на нем не получилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 6 сентября, 2023 Опубликовано 6 сентября, 2023 · Жалоба 36 minutes ago, vladec said: а вот отлаживаться под JTAG-ом у них на нем не получилось. И вряд ли получится. Т.к. скорее всего там SWD😀 А что конкретно не получилось? Факты бы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 8 6 сентября, 2023 Опубликовано 6 сентября, 2023 · Жалоба 22 часа назад, 0men сказал: гигадевайс определяется вот так // STM32F405 = 0x041 // GD32F405 = 0x7A3 uint16_t Get_JTAG_ID(void) { if( *( uint8_t *)( 0xE00FFFE8 ) & 0x08 ) { return ( ( *( uint8_t *)( 0xE00FFFD0 ) & 0x0F ) << 8 ) | ( ( *( uint8_t *)( 0xE00FFFE4 ) & 0xFF ) >> 3 ) | ( ( *( uint8_t *)( 0xE00FFFE8 ) & 0x07 ) << 5 ) + 1 ; } return 0; } Спасибо! Этот способ работает. apm32f407 JtagId=0xb47 DevId=0x413 RevId=0x9 CpuId=0x410fc241 STM32F405 JtagId=0x41 DevId=0x413 RevId=0x1001 CpuId=0x410fc241 Для APM32 считанный JtagId=0xb47 совпадает с указанным в даташите JTAG ID code is 0x06413B47, еще бы старшую часть вычитать. Пытался разобраться по CoreSight infrastructure IDs for an ARMv7-M implementation, там черт ногу сломит и все время ссылаются на недоступный JEDEC JEP106. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 240 6 сентября, 2023 Опубликовано 6 сентября, 2023 · Жалоба 19 минут назад, _3m сказал: Для APM32 считанный JtagId=0xb47 совпадает с указанным в даташите JTAG ID code is 0x06413B47 И Вы надеетесь, что он будет таким же во всех других экземплярах APM32? Святая наивность..... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 8 6 сентября, 2023 Опубликовано 6 сентября, 2023 · Жалоба 36 минут назад, jcxz сказал: И Вы надеетесь, что он будет таким же во всех других экземплярах APM32? Святая наивность..... Нет, конечно! Я надеюсь что код будет отличаться от stm-овского 0x41 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
0men 2 6 сентября, 2023 Опубликовано 6 сентября, 2023 · Жалоба On 9/6/2023 at 2:35 PM, jcxz said: И Вы надеетесь, что он будет таким же во всех других экземплярах APM32? Святая наивность..... я не надеюсь, я знаю ) этот способ работать будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 6 сентября, 2023 Опубликовано 6 сентября, 2023 · Жалоба On 9/5/2023 at 3:53 PM, 0men said: // STM32F405 = 0x041 // GD32F405 = 0x7A3 uint16_t Get_JTAG_ID(void) { if( *( uint8_t *)( 0xE00FFFE8 ) & 0x08 ) { return ( ( *( uint8_t *)( 0xE00FFFD0 ) & 0x0F ) << 8 ) | ( ( *( uint8_t *)( 0xE00FFFE4 ) & 0xFF ) >> 3 ) | ( ( *( uint8_t *)( 0xE00FFFE8 ) & 0x07 ) << 5 ) + 1 ; } return 0; } А вы где про эти адреса прочитали ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 10 7 сентября, 2023 Опубликовано 7 сентября, 2023 · Жалоба 23 часа назад, haker_fox сказал: Т.к. скорее всего там SWD😀 А что конкретно не получилось? Факты бы. Я не программист, по этому конкретизировать не могу, со слов программиста получалось зашивать, но не получалось отлаживать, может нужна была еще какая нибудь приблуда от Geehy, не знаю, а под термином "JTAG" я собственно и имел в виду обычный двухпроводный SWD, а не классический JTAG. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
0men 2 7 сентября, 2023 Опубликовано 7 сентября, 2023 · Жалоба On 9/6/2023 at 9:49 PM, dimka76 said: А вы где про эти адреса прочитали ? здесь compatibility sumup between GD32 and STM32_V2.0.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться