|
|
  |
TI AM1808, разные вопросы |
|
|
|
Jun 25 2014, 12:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(SAURIS GmbH @ Jun 25 2014, 14:42)  Вот именно на этом рисунке и написано, что его состояние по умолчанию - SwRstDisable, что значит, что он без клока и в резете. Ну да, питание ему выключить нельзя... Но что это меняет, если ему обрублено все остальное  Эмулятором считайте регистр MDSTAT19 MDSTAT3 в PSC1 - будет видно, в каком состоянии GPIO UPD: По идее, его мог включить (если он включен) начальный загрузчик, который в ROM, если ему надо что-то делать через GPIO. UPD2: Его включает GEL файл, вызовом "PSC1_LPSC_enable(0, LPSC_GPIO);" - так что при запуске из-под эмулятора, если GEL подцеплен, то GPIO включен (и вообще, он там все что ни попадя включает). Вызываю скрипт из GEL, что должно всё включить, но эффекта не наблюдаю. Код hotmenu Setup_Psc_All_On( ) { .......
PSC1_lPSC_enable(0, 3); // GPIO
...... } Значения регистров прилагаю, они?
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 25 2014, 12:39
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Цитата(doom13 @ Jun 25 2014, 16:26)  Значения регистров прилагаю, они? Не, не совсем они. Нужного MDSTAT тут нет. Его адрес 01E2780Ch ( MDSTAT0 - 01E27800h ) ( MDSTAT1 - 01E27804h ) ( MDSTAT2 - 01E27808h ) ( MDSTAT3 - 01E2780Ch ) ( MDSTAT4 - 01E27810h ) ....
Сообщение отредактировал SAURIS GmbH - Jun 25 2014, 12:44
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jun 25 2014, 12:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(SAURIS GmbH @ Jun 25 2014, 15:39)  Не, не совсем они. Нужного MDSTAT тут нет. Его адрес 01E27810h Счас посмотрим этот. Сделал ещё такую проверку. Запускаю на выполнение скрипт из GEL с кодом Код #define SYS_BASE 0x01C14000 #define KICK0R *(unsigned int*)(SYS_BASE + 0x038) #define KICK1R *(unsigned int*)(SYS_BASE + 0x03c) #define PINMUX17 *(unsigned int*)(SYS_BASE + 0x164) //PINMUX17
hotmenu Setup_System_Config( ) { GEL_TextOut( "Setup PINMUX Registers... " ); KICK0R = 0x83e70b13; // Kick0 register + data (unlock) KICK1R = 0x95a4f1e0; // Kick1 register + data (unlock)
PINMUX17 = 0x22222222; // LCDIO GEL_TextOut( "[My test is done!!!]\n" ); } , как понимаю, в Memory Browser по адресу должен увидеть 0x22222222, но там нет изменений при выполнении скрипта? В консоли только вижу "ARM9_0: GEL Output: Setup PINMUX Registers...ARM9_0: GEL Output: [My test is done!!!]"
|
|
|
|
|
Jun 25 2014, 12:48
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Цитата(doom13 @ Jun 25 2014, 16:45)  , как понимаю, в Memory Browser по адресу должен увидеть 0x22222222, но там нет изменений при выполнении скрипта? В консоли только вижу "ARM9_0: GEL Output: Setup PINMUX Registers...ARM9_0: GEL Output: [My test is done!!!]" Во первых, я там ошибся с адресом, исправил, сорри. Во вторых - да, должны увидеть 0x22222222. Но, если это сделано до PSC1_LPSС_ENABLE для GPIO, то и не должны.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jun 25 2014, 12:57
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Ой. Был не прав. PINMUX это же SYSCFG, а не GPIO.
Ну GPIO включен. Так что разбирайтесь, скорее всего, с memory protection, чего это он не дает туда записывать из ARM.
После выполнения скрипта, возможно надо обновить содержимое browser, он может автоматом не обновляться, и увидеть там 22222222
Сообщение отредактировал SAURIS GmbH - Jun 25 2014, 13:00
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jun 25 2014, 13:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(SAURIS GmbH @ Jun 25 2014, 15:48)  Во вторых - да, должны увидеть 0x22222222. Но, если это сделано до PSC1_LPSС_ENABLE для GPIO, то и не должны. При подключении к Target Configuration GEL и выполнении Target Connect, автоматом выполняется скрипт CODE OnTargetConnect( ) { GEL_TextOut( "\nAM1808 ARM Startup Sequence\n\n" );
Setup_System_Config( ); // Setup Pin Mux and other system module registers Setup_Psc_All_On( ); // Setup All Power Domains Setup_PLL0(); // Setup PLL0 (300MHZ ARM, 300MHz DSP, 133MHz EMIFs Setup_EMIFA(); // Async EMIF Setup_PLL1(); // PLL for DDR Clock DDRConfig(132); // Setup DDR
GEL_TextOut( "\nStartup Complete.\n\n" ); }
, где в теле Setup_Psc_All_On( ) прописано CODE hotmenu Setup_Psc_All_On( ) { int i; GEL_TextOut( "Setup Power Modules (All on)... " );
// PSC0 PSC0_lPSC_enable(0, 0); // EDMA_CC0 PSC0_lPSC_enable(0, 1); // EDMA_TC0 PSC0_lPSC_enable(0, 2); // EDMA_TC1 PSC0_lPSC_enable(0, 3); // EMIFA PSC0_lPSC_enable(0, 4); // SPI0 PSC0_lPSC_enable(0, 5); // MMCSD0 PSC0_lPSC_enable(0, 6); // ARM_AINTC PSC0_lPSC_enable(0, 7); // ARM_RAMROM // #8 not used PSC0_lPSC_enable(0, 9); // UART0 PSC0_lPSC_enable(0, 10); // SCR0 PSC0_lPSC_enable(0, 11); // SCR1 PSC0_lPSC_enable(0, 12); // SCR2 // #13 not used // PSC0_lPSC_enable(0, 14); // ARM
// PSC1 PSC1_lPSC_enable(0, 0); // EDMA_CC1 PSC1_lPSC_enable(0, 1); // USB20 PSC1_lPSC_enable(0, 2); // USB11 PSC1_lPSC_enable(0, 3); // GPIO PSC1_lPSC_enable(0, 4); // UHPI PSC1_lPSC_enable(0, 5); // EMAC PSC1_lPSC_enable(0, 6); // DDR PSC1_lPSC_enable(0, 7); // MCASP0 PSC1_LPSC_force(8); PSC1_lPSC_enable(0, 8); // SATA
PSC1_lPSC_enable(0, 9); // VPIF PSC1_lPSC_enable(0, 10); // SPI1 PSC1_lPSC_enable(0, 11); // I2C1 PSC1_lPSC_enable(0, 12); // UART1 PSC1_lPSC_enable(0, 13); // UART2 PSC1_lPSC_enable(0, 14); // MCBSP0 PSC1_lPSC_enable(0, 15); // MCBSP1 PSC1_lPSC_enable(0, 16); // LCDC PSC1_lPSC_enable(0, 17); // EPWM PSC1_lPSC_enable(0, 18); // MMCSD1 PSC1_lPSC_enable(0, 19); // UPP PSC1_lPSC_enable(0, 20); // ECAP PSC1_lPSC_enable(0, 21); // EDMA_TC2 // #22 & 23 not used PSC1_lPSC_enable(0, 24); // SCR_F0 PSC1_lPSC_enable(0, 25); // SCR_F1 PSC1_lPSC_enable(0, 26); // SCR_F2 PSC1_lPSC_enable(0, 27); // SCR_F6 PSC1_lPSC_enable(0, 28); // SCR_F7 PSC1_lPSC_enable(0, 29); // SCR_F8 PSC1_lPSC_enable(0, 30); // BR_F7 PSC1_lPSC_enable(0, 3); // SHARED_RAM
GEL_TextOut( "[Done]\n" ); }
, т.е. строка PSC1_lPSC_enable(0, 3) есть в наличии, и я должен был увидеть мои 0х22222222?
|
|
|
|
|
Jun 25 2014, 13:05
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Цитата(doom13 @ Jun 25 2014, 17:01)  , т.е. строка PSC1_lPSC_enable(0, 3) есть в наличии, и я должен был увидеть мои 0х22222222? Это не важно, я же поправился, тут речь про SYSCFG, а не GPIO. Вы должны увидеть 0x22222222, если откроете memory browser ПОСЛЕ исполнения вашего "hotmenu", или если вручную обновите в нем данные.
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jun 25 2014, 13:36
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Странно это. Жаль я не могу проверить это сейчас.
Ну тут как вариант, надо включить сначала LCDC в PSC1. А попробуйте другие PINMUX писать, например EMIF. Попробуйте туда записать 22222222 прямо через memory browser, и потом обновить его, для проверки "а записалось ли".
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jun 25 2014, 13:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(SAURIS GmbH @ Jun 25 2014, 15:57)  Ну GPIO включен. Так что разбирайтесь, скорее всего, с memory protection, чего это он не дает туда записывать из ARM. Почитал про механизм защиты записи регистров, реализуется через регистры KICK0R-KICK1R. В скрипте прописан unlock, но не помогает, ещё нашёл, что со 2 ревизии кремния этот механизм отменён, т.е. в моём случае это никак не влияет (AM1808B). Про memory protection units (MPU1 and MPU2) понял, что один для защиты On-Chip RAM, другой - для DDR2/mDDR SDRAM, т.е. влиять на память для моего PINMUX17 не должно.
|
|
|
|
|
Jun 25 2014, 13:55
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Цитата(doom13 @ Jun 25 2014, 17:39)  Про memory protection units (MPU1 and MPU2) понял, что один для защиты On-Chip RAM, другой - для DDR2/mDDR SDRAM, т.е. влиять на память для моего PINMUX17 не должно. Возможно, но в любом случае, на сколько я помню, запись в эти регистры (SYSCFG) возможна только из Priveleged mode. В общем, тут моя память закончилась (на сколько я помню, эмулятор всегда в Privileged, поэтому писать должен. Да и тот же GEL, конфигурируя, например, EMIF, свободно меняет PINMUXы). Для дальнейших полезных подсказок надо иметь на столе систему на AM1808, к сожалению сейчас таковой у меня нет. Вдогонку... У меня были похожие глюки на AM3517, когда я случайно запустил его на сильно запредельной частоте PLL... Вряд ли, конечно, у Вас такое же. Но тем не менее...
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jun 25 2014, 14:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(SAURIS GmbH @ Jun 25 2014, 16:55)  Возможно, но в любом случае, на сколько я помню, запись в эти регистры (SYSCFG) возможна только из Priveleged mode. В общем, тут моя память закончилась (на сколько я помню, эмулятор всегда в Privileged, поэтому писать должен. Да и тот же GEL, конфигурируя, например, EMIF, свободно меняет PINMUXы). Для дальнейших полезных подсказок надо иметь на столе систему на AM1808, к сожалению сейчас таковой у меня нет.
Вдогонку... У меня были похожие глюки на AM3517, когда я случайно запустил его на сильно запредельной частоте PLL... Вряд ли, конечно, у Вас такое же. Но тем не менее... Со скриптом разобрался, оказалось половина исполняемой функции была закоментирована (блокнотом смотрел не заметил комент, после того, как сделал свою, всё записалось и тагда только заметил). Но из программы по-прежнему не хочет пока писать, читает, как и ранее, нормально. Счас ещё про Priveleged mode читну.
|
|
|
|
|
Jun 25 2014, 14:03
|

Знающий
   
Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291

|
Цитата(doom13 @ Jun 25 2014, 18:02)  Счас ещё про Priveleged mode читну. Если правильно помню, туда через SWI вход - либо System mode, либо Supervisor. Увидеть же, какой режим сейчас, можно в PSR (биты 4:0)
Сообщение отредактировал SAURIS GmbH - Jun 25 2014, 14:05
--------------------
Sauris GmbH technical support (web site: http://www.sauris.de) XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
|
|
|
|
|
Jun 25 2014, 17:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Почитал о том, что Вы говорили. Так и есть, написано, что доступ к PINMUX только в режиме Privileged Mode. При остановке на записи в регистр PINMUX смотрю PSR[4:0], там значение 10000b - User Mode. Видимо, в этом-то и проблема. Не понятно, почему в примере от TI нет ничего, чтобы указывало на какие-то дополнительные действия, main начинается с настройки PSC, далее настройка PINMUX.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|