Перейти к содержанию
    

Norton

Участник
  • Постов

    12
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Контакты

  • Сайт
    Array

Информация

  • Город
    Array
  1. А причина была в том, что на ножку ISET (61) было запаяно не сопротивление, а конденсатор.
  2. Резисторы и конденсаторы есть. на ответный конец ставил свитч и комп. генератор 25МГц, нет такого осциллографа чтобы проверить. ушел ловить FPL.
  3. Имею данный девайс в конфигурации 1й,2й порты наружу, 3й и SPI на AT91SAM7X. после сброса пишу через SPI конфигурационные регистры, пускаю свитч. MII еще не прицеплял. Непонятен механизм определения типа соединения на порту. Вариант 1 - Auto-negotiation -предлагать только 10мбит (FD|HD) - отлично работает Вариант 2 - жестко зацепить 10 мбит HD|FD - все работает Вариант 3 - жестко зацепить 100 мбит HD|FD - свитч считает, что у него все хорошо, а вот ответный конец нет (хотя я ему ставлю те же установки), и ничего не работает Вариант 4 - Полный Auto-negotiation - статус порта уходит в цикл (нет линка -> пошел AN -> link OK 100mbit FD->нет линка) Подключение трансформатора сделано, как на Eval borde. Также используется POE, но вроде как он влиять не должен. POE только на одном порту, а проблема на обоих. Подскажите куда копать. Это какое-то непонимание свича мной, или ошибка в разводке трансформатора. Заранее спасибо.
  4. все было проще... внимательнее надо быть, я имя метки, а не секции писал *Wall* ... хоть бы отвечал что нет такой секции...
  5. Доброго дня. Пользую yagarto. Есть задача перепрошивать часть кода (обработчик команд) на этапе эксплуатации, собственно обработчик команд уже живет в двух секциях .Ctable и .ChProg Собственно вопрос, как мне параллельно с основной прошивкой генерить второй образ содержащий только 2 секции, размещенных с 0. пытаясь сделать по аналогии с eeprom arm-elf-objcopy -j .ChProg --change-section-lma .ChProg=0 RTOSDemo.elf -O binary Chpart.bin arm-elf-objcopy --only-section .ChProg --change-section-lma .ChProg=0 RTOSDemo.elf -O binary Chpart.bin генерят пустой файл arm-elf-objcopy --add-cection .Chprog=ComProc.o --change-section-lma .ChProg=0 RTOSDemo.elf -O binary Chpart.bin генерит основную прошивку (или нечто похожее на нее) в .map файле секции существуют и содержат, что надо. Кто-нибудь сталкивался с подобным? Спасибо.
  6. PIO IRQ на AT91SAM7X

    странно, вроде раньше перебирал все значения SRCTYPE - не работало, а сейчас заработало, спасибо
  7. AT91SAM7 + GCC(Yagarto)

    я делал примерно так для сохраниния настроек unsigned long *opt1 = (unsigned long *) SETTINGS_OFFSET+SA_OPT1; unsigned long *opt2 = (unsigned long *) SETTINGS_OFFSET+SA_OPT2; где SETTINGS_OFFSET - адрес начала страницы, а SA_OPT - смещение внутри страницы нашей настройки, и также писать процедуру перезаписи всего сегмента а чтобы компилятор туда не помещал ничего другого, прописать в скрипте линкера .=0x00100000+255K; .settings : { *(.settings .settings.*); } >flash =0x00 можно использовать .=align(256); которая выравнивает точку в памяти кратно указанному числу байт также можете поэксперементировать с объявлению переменной с привязкой к сегменту __attribute__ ((section (".settings"))) unsigned long int Buf[64]; но у меня дружбы с ними не получилось, то регион кончался, то линкер ошибку давал (а рассказывать детально о своих ошибках не хотел)
  8. PIO IRQ на AT91SAM7X

    хм, у меня выглядит так #define AT91F_AIC_ConfigureIt( irq_id, priority, src_type, newHandler ) \ { \ unsigned int mask; \ \ mask = 0x1 << irq_id; \ /* Disable the interrupt on the interrupt controller */ \ AT91C_BASE_AIC->AIC_IDCR = mask; \ /* Save the interrupt handler routine pointer and the interrupt priority */ \ AT91C_BASE_AIC->AIC_SVR[irq_id] = (unsigned int) newHandler; \ /* Store the Source Mode Register */ \ AT91C_BASE_AIC->AIC_SMR[irq_id] = src_type | priority ; \ /* Clear the interrupt on the interrupt controller */ \ AT91C_BASE_AIC->AIC_ICCR = mask; \ } ну да, оплошал, но все равно не играет роли
  9. PIO IRQ на AT91SAM7X

    пардон, что не отвечал - был в отъезде по 0x18 лежит ldr pc, [pc, #-0xF20] при этом прерывание от ЕМАС работает атрибуты перебирал и naked и interrupt по отдельности - все равно не работает если неправильные атрибуты, то как я понимаю программа должна умирать, у меня же не заходит в прерывание, а работу продолжает
  10. PIO IRQ на AT91SAM7X

    Использую AT91SAM7X - EK и yagarto Надо повесить джойстик на прерывание. Перерыл все примеры, сделал как там - все равно не работает. Инициализация AT91C_BASE_PIOA->PIO_PER = (0x1F <<21); AT91C_BASE_PIOA->PIO_ODR = (0x1F <<21); AT91C_BASE_PIOA->PIO_IFER = (0x1F <<21); AT91C_BASE_PIOA->PIO_CODR = (0x1F <<21); AT91C_BASE_PIOA->PIO_IER = (0x1F <<21); AT91C_BASE_PIOA->PIO_MDDR = (0x1F <<21); AT91C_BASE_PIOA->PIO_PPUER = (0x1F <<21); AT91C_BASE_PIOA->PIO_OWDR = (0x1F <<21); //LEDS AT91C_BASE_PIOB->PIO_PER = (0xF<<19); AT91C_BASE_PIOB->PIO_OER = (0xF<<19); AT91C_BASE_PIOB->PIO_IFDR = (0xF<<19); AT91C_BASE_PIOB->PIO_SODR = (0xF<<19); AT91C_BASE_PIOB->PIO_IDR = (0xF<<19); AT91C_BASE_PIOB->PIO_MDDR = (0xF<<19); AT91C_BASE_PIOB->PIO_PPUDR = (0xF<<19); AT91C_BASE_PIOB->PIO_OWDR = (0xF<<19); //interrupts AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA; AT91F_AIC_ConfigureIt(AT91C_ID_PIOA, BUTT_INT_LEVEL_PRIORITY, AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE, ( void (*)( void ) ) ButtonsISR_Test ); AT91C_BASE_AIC->AIC_IMR = 1 << AT91C_ID_PIOA; AT91C_BASE_AIC->AIC_IECR = 1 << AT91C_ID_PIOA; Обработчик (в отдельном модуле, компилится по ARM) void __attribute__((interrupt("IRQ"), naked )) ButtonsISR_Test() { AT91C_BASE_PIOB->PIO_CODR = (0x1<<19); } Подскажите, может я где-то что-то упустил? заранее спасибо.
  11. Столкнулся с необходимостью фиксированно распределить модули (и отдельные объекты) программы по двум адресным пространствам. Есть ли у кого пример ldscript'а, который делает что-то подобное? А то уже выбился из сил изучая толмуты документации, не получая результата.
×
×
  • Создать...