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

 
 
> OMAP L138, быстрый старт
torik
сообщение Aug 23 2012, 04:51
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Всем привет.

Сигнальниками раньше не занимался, больше ПЛИС. Но СИ и еклипс мне знакомы.
Сделал плату, на ней имеется ПЛИС и OMAP L138.
Нужно написать простую программку для проверки работоспособности платы:
- EMIF, подключенный к ПЛИС
- UPP, подключенный к ПЛСИ
- чтение/запись DDR2, подключенной к сигнальнику
- помаргать светодиодиками.

Что-то не могу найти простых толковых примеров, Quick Start или еще чего. Ткните куда-нибудь...

"хело ворлд" в Code Composer Studio v5 получил, т.е. jtag работает, проц запускается.


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
torik
сообщение Aug 29 2012, 07:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Охренеть.

По примерам из StarterWare:
Код
   PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_DSP, PSC_POWERDOMAIN_ALWAYS_ON,
             PSC_MDCTL_NEXT_ENABLE);

И заливаю это в АРМ, все верно?

А как положить это в ПЗУ, хотя бы M25P64, подключенное к сигнальнику? А то не могу же я, не прекратив выполнение программы арма началь отладку дсп...


Но кроме того, вернусь к изначальной теме: мне надо помыргать светодиодом.
На основе StarterWire и рекомендаций aaarrr (я только не понял че там за ID такой), написал прогу и запускаю ее под арм:

Код
#include <stdio.h>

#include "gpio.h"
#include "psc.h"

#include "soc_OMAPL138.h"
#include "lcdkOMAPL138.h"

#include "hw_syscfg0_OMAPL138.h"

#include "hw_types.h"

/*****************************************************************************
**                       MACRO DEFINITION
*****************************************************************************/
/* Pin Multiplexing bit mask to select GP0[0] pin. */
#define PINMUX1_GPIO0_0_ENABLE    (SYSCFG_PINMUX1_PINMUX1_27_24_GPIO0_1  << SYSCFG_PINMUX1_PINMUX1_27_24_SHIFT)

/****************************************************************************/
/*              LOCAL FUNCTION PROTOTYPES                                   */
/****************************************************************************/
static void Delay(volatile unsigned int delay);

/****************************************************************************/
/*              GLOBAL VARIABLES                                            */
/****************************************************************************/

/****************************************************************************/
/*             LOCAL FUNCTION DEFINITIONS                                   */
/****************************************************************************/




//#include <OMAPL138_common.h>
/*
* hello.c
*/
void main(void) {
    printf("Hello World!\n");
    //CSL_FINS(gpioRegs->BANK[GP0].DIR, GPIO_DIR_DIR12, CSL_GPIO_DIR_DIR_OUT);
    unsigned int savePinmux = 0;


    /* The Local PSC number for GPIO is 3. GPIO belongs to PSC1 module.*/
   PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON,
             PSC_MDCTL_NEXT_ENABLE);

   PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_DSP, PSC_POWERDOMAIN_ALWAYS_ON,
             PSC_MDCTL_NEXT_ENABLE);

    /* Pin Multiplexing of pin 12 of GPIO Bank 6.*/
//   GPIOBank6Pin12PinMuxSetup();
    /*
    ** Clearing the bit in context and retaining the other bit values
    ** in PINMUX10 register.
    */
    savePinmux = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(1)) &
                 ~(SYSCFG_PINMUX1_PINMUX1_31_28));

    /* Setting the pins corresponding to GP4[0] in PINMUX10 register.*/
    HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(1)) =
         (PINMUX1_GPIO0_0_ENABLE | savePinmux);


    /* Sets the pin 1 (GP0[0]) as out.*/
    GPIODirModeSet(SOC_GPIO_0_REGS, 1, GPIO_DIR_OUTPUT);

    while(1)
    {
        GPIOPinWrite(SOC_GPIO_0_REGS, 1, GPIO_PIN_LOW);

        Delay(1000000);

        GPIOPinWrite(SOC_GPIO_0_REGS, 1, GPIO_PIN_HIGH);

        Delay(1000000);
    }


}

/*
** \brief  This function checks the insertion status of the MMC/SD card
**         in the device and prints related statements on the serial
**         commuincation console of the external device.
**
*/

/*
** \brief   This function can be called to generate a delay.
*/

static void Delay(volatile unsigned int delay)
{
    while(delay--);
}


Однако светодиод не моргает. Подпрогаммы посмотрел, вроде бы все верно (да и кто бы сомневался). Может в арм-е по-другому надо с psc что-то делать, что-то еще включить?





--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 29 2012, 09:03
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(torik @ Aug 29 2012, 11:41) *
По примерам из StarterWare:
Код
   PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_DSP, PSC_POWERDOMAIN_ALWAYS_ON,
             PSC_MDCTL_NEXT_ENABLE);

И заливаю это в АРМ, все верно?

Со StarterWare я не знаком, но на вид верно.

Цитата(torik @ Aug 29 2012, 11:41) *
А как положить это в ПЗУ, хотя бы M25P64, подключенное к сигнальнику? А то не могу же я, не прекратив выполнение программы арма началь отладку дсп...

Могу предложить Хитрый Способ:
1. Создаем в HEX-редакторе "бинарник" для ARM из одной инструкции "b .": 0xfe 0xff 0xff 0xea
2. Берем AISGen, ставим в нем галку "Configure PSC", разрешаем в конфигурации PSC DSP
3. Создаем загрузочный образ
Дубово, но зато просто и будет работать.

Цитата(torik @ Aug 29 2012, 11:41) *
Но кроме того, вернусь к изначальной теме: мне надо помыргать светодиодом.
На основе StarterWire и рекомендаций aaarrr (я только не понял че там за ID такой), написал прогу и запускаю ее под арм:
...
Однако светодиод не моргает. Подпрогаммы посмотрел, вроде бы все верно (да и кто бы сомневался). Может в арм-е по-другому надо с psc что-то делать, что-то еще включить?

ID - регистр модуля GPIO. Его можно прочитать, чтобы убедиться, что клок на самом деле включен.
Подозреваю, что SYSCFG залочен (см. регистры Kick0, Kick1), поэтому запись в PINMUX не проходит.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- torik   OMAP L138   Aug 23 2012, 04:51
- - Konst_777   Цитата(torik @ Aug 23 2012, 07:51) ...Что...   Aug 23 2012, 07:12
- - torik   Почитал доку на upp - там гора регистров, может пр...   Aug 23 2012, 14:15
|- - aaarrr   Цитата(torik @ Aug 23 2012, 18:15) Почита...   Aug 23 2012, 14:53
- - torik   Дык есть примеры-то? Да даже проще - я не понимаю ...   Aug 23 2012, 15:04
|- - aaarrr   Цитата(torik @ Aug 23 2012, 19:04) Начнем...   Aug 23 2012, 15:41
- - torik   Цитата1. Включить GPIO в PSC 2. Настроить соответс...   Aug 24 2012, 12:34
|- - aaarrr   Цитата(torik @ Aug 24 2012, 16:34) Уже ст...   Aug 24 2012, 13:00
- - torik   Во, что-то более-менее понятное в StraterWare вижу...   Aug 24 2012, 13:21
- - torik   Когда ARM ядро запускаю, все нормально. Прога деба...   Aug 29 2012, 06:25
- - aaarrr   DSP нужно включить со стороны ARM'а - он выклю...   Aug 29 2012, 06:57
|- - jcxz   Цитата(aaarrr @ Aug 29 2012, 12:57) DSP н...   Aug 30 2012, 02:46
- - torik   ЦитатаПодозреваю, что SYSCFG залочен (см. регистры...   Aug 29 2012, 09:44
|- - aaarrr   Цитата(torik @ Aug 29 2012, 13:44) Для ту...   Aug 29 2012, 09:56
- - torik   Чтение REVID дает 0x4E840102 а пинмукс читается к...   Aug 29 2012, 10:10
- - aaarrr   Попробуйте теперь прочитать DEVIDR0.   Aug 29 2012, 10:11
- - torik   Кстати, SYSCFG0_KICK0R тоже 0 DEVIDR0 = 0x1B7D102...   Aug 29 2012, 10:16
|- - aaarrr   Странно как-то. В каком режиме процессор (регистр ...   Aug 29 2012, 10:19
- - torik   Такого регистра не наблюдаю в документации вообще   Aug 29 2012, 10:40
- - aaarrr   Это регистр процессора, из серии R0, R1 и т.п.   Aug 29 2012, 10:47
|- - aaarrr   Цитата(aaarrr @ Aug 29 2012, 14:47) Это р...   Aug 29 2012, 11:28
- - torik   В регистре R0 содержится адрес зинмукса вроде 0x01...   Aug 29 2012, 11:28
- - torik   0x200000D0 Есть подозрение, что надо как-то перев...   Aug 29 2012, 11:43
|- - aaarrr   Цитата(torik @ Aug 29 2012, 15:36) 0x2000...   Aug 29 2012, 11:45
- - torik   Exception по Reset-у как раз в режиме супервизора....   Aug 29 2012, 12:11
|- - aaarrr   Цитата(torik @ Aug 29 2012, 16:11) Except...   Aug 29 2012, 12:27
- - torik   Ух ты. Где это сделать?   Aug 29 2012, 12:36
- - maxis   Тоже интересно, не поделится ли кто примером как п...   Aug 29 2012, 12:45
|- - aaarrr   Цитата(maxis @ Aug 29 2012, 16:45) Тоже и...   Aug 29 2012, 12:54
- - torik   Скачали с сайта техаса файл boot.asm, тупо добавил...   Aug 30 2012, 05:50
- - aaarrr   Цитата(jcxz @ Aug 30 2012, 06:46) Хм... А...   Aug 30 2012, 06:21
|- - maxis   Цитата(aaarrr @ Aug 30 2012, 10:21) Поряд...   Aug 30 2012, 09:26
||- - aaarrr   Цитата(maxis @ Aug 30 2012, 13:26) И на с...   Aug 30 2012, 10:27
||- - maxis   Цитата(aaarrr @ Aug 30 2012, 14:27) А что...   Aug 30 2012, 11:24
|- - jcxz   Цитата(aaarrr @ Aug 30 2012, 12:21) Там м...   Aug 31 2012, 20:01
|- - aaarrr   Цитата(jcxz @ Sep 1 2012, 00:01) Значит -...   Aug 31 2012, 21:10
|- - SM   Цитата(jcxz @ Sep 1 2012, 00:01) Значит -...   Sep 1 2012, 18:26
|- - jcxz   Цитата(SM @ Sep 2 2012, 00:26) Это и есть...   Sep 2 2012, 05:54
|- - SM   Цитата(jcxz @ Sep 2 2012, 09:54) Всегда у...   Sep 2 2012, 08:32
- - aaarrr   То есть по статусу он и не начинал включаться. Нуж...   Aug 30 2012, 12:54
- - aaarrr   На самом деле в L138 первым тоже стартует DSP, про...   Sep 2 2012, 09:27
|- - SM   Цитата(aaarrr @ Sep 2 2012, 13:27) На сам...   Sep 2 2012, 13:47
- - aaarrr   Вот цитата из errata, касающаяся ревизий 2.0 и ниж...   Sep 2 2012, 21:14
|- - SM   Цитата(aaarrr @ Sep 3 2012, 01:14) Вот ци...   Sep 3 2012, 05:35
- - remi700   Возникла примерно такая же задача как в начале тем...   Sep 22 2013, 19:36
|- - aaarrr   Цитата(remi700 @ Sep 22 2013, 23:36) Поче...   Sep 22 2013, 19:46
|- - ASN   remi700 Для того, чтобы портестировать UPP можно н...   Sep 23 2013, 05:48
- - octobus   Есть у кого рабочий пример работы с UPP без DSP/BI...   Nov 1 2013, 16:30
- - aaarrr   Если не считать инициализации PINMUX и PSC, для за...   Nov 1 2013, 18:17
|- - lekintr   Цитата(aaarrr @ Nov 1 2013, 21:17) Поэтом...   Nov 1 2013, 18:28
|- - ASN   octobus Как точно заметил уважаемый aaarrr исходни...   Nov 3 2013, 11:32
- - octobus   Сейчас вопрос стоит не в том, что невозможно разоб...   Nov 3 2013, 16:43
|- - ASN   octobus Вот исходники для uboot. Код#define DAVINC...   Nov 5 2013, 11:27
- - lekintr   2ASN тоже поковыряю Ваши исходники.   Nov 5 2013, 13:26
- - octobus   О, отлично, спасибо огромнейшее за исходник. Попро...   Nov 5 2013, 13:39
- - octobus   В общем все пришлось писать заново, используя друг...   Nov 11 2013, 14:07
|- - ASN   octobus Поздравляю . Смущает только, что при разме...   Nov 11 2013, 16:35
|- - Victor_Tr   Прикрепляю проект для CCS 5.4. Ничего не требуется...   Jul 23 2014, 21:55
- - lekintr   Я посмотрел проект похоже пропадают не пакеты, или...   Nov 11 2013, 16:40
- - octobus   жду не дождусь когда же уберут предупреждение, вто...   Oct 6 2014, 02:24
- - den_steppenwolf   Цитата(octobus @ Oct 6 2014, 08:24) жду н...   Jan 14 2016, 10:12


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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 20:37
Рейтинг@Mail.ru


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