Jump to content

    

ex51

Участник
  • Content Count

    26
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ex51

  • Rank
    Участник
  • Birthday 11/30/1966

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. А вот интересно, тоже нахожусь перед подобным выбором, но несколько по иной причине, а именно в связи с полным переходом под линукс. Отсюда возникает вопрос по поводу каденса. С редактором печатных плат (алегро) как бы всё понятно, он есть под линукс, а вот что есть под линукс от каденса в плане ввода схем, для сквозного проектирования в одном пакете?
  2. Ищу работу в области разработки электроники с применением МК и ПЛИС в Московском регионе. Опыт разработки более 12 лет. Полный цикл разработки от схемы до печатной платы, плюс программирование МК и ПЛИС. Документация. Программирование МК MCS51, PIC, AVR, ARM, "С/С++" (включая FreeRTOS), IAR, Keil, GCC. Разработка архитектуры ПЛИС, включая SoC (в основном Altera, немного работал с Lattice) Verilog, SystemVerilog, верификация, тестовое покрытие. Инструментальные средства ПЛИС: Quartus, Diamond. iCEcube2, ModelSim, QuestaSim. САПР Altium. Системы контроля версий SVN, Mercurial. Остальные подробности в личку или по email.
  3. Вчера отослал резюме. Что-то пока ни какого ответа.
  4. А ваши координаты можно узнать чтобы пообщаться по конкретнее.
  5. А название компании и сферу деятельности можно узнать?
  6. Естественно как родной v7. Перешил прошивкой 7 версии по моему с этой же темы. Она старая. После прошивки запускаю j-link commander он кричит что старая прошивка и предлагает ее обновить. Обновляю прошивку и всё, работаю с 7 версией. SWD работает, что и требовалось!
  7. Не знаю как в Вашем клоне, а у меня надо было допаять всего 2 перемычки и всё. Между TMS и 36 ножкой контроллера и TCK и 37. Ну и перешить. Уже с десяток так доработал, вроде все работают.
  8. Люди подскажите как решить такую проблему. Есть безымянные клоны JLink-а 5 версии. Доработал его до 7 (очень нужен SWD). Теперь естественно надо перезалить софт от 7 версии. Пробовал стирать флеш (коротил 55 ножку на питание) и затем восстанавливать sam-ba загрузчик (40 ножкой). Что-то гад никак не хочет определяться самбой, упорно пишет что он jlink. Самое интересное что где-то год назад я таким образом уже переделывал пару таких jlink-ов и всё работало! Теперь в упор не хочет! Ну ладно пошел с другой стороны. Нашел идой строки в JLinkARM.dll которыми он определяет версию прошивки, исправил чтобы он думал что он 7 версии. После этого он радостно обновил свою прошивку, НО только версию firmvare!!! Теперь пишет: Firmware: J-Link ARM V7 compiled Sep 6 2010 10:43:31 Hardware: V5.00 с исправленной dll swd работает. Но такой вариант не устраивает! Вопрос, можно ли сделать так чтобы dll обновила прошивку полностью, вместе с версией hardware? Может у кого есть такая dll готовая. Или подскажите в каком направлении копать в сторону dll или всё таки пытаться запустить самбу. Хотя с dll конечно гораздо удобней, не надо вообще ничего делать. Обновил и всё, а с самбой много лишней работы получается. Вообще dll может или нет обновить прошивку полностью, вместе с hardware? Вопрос снимается! Всё получилось самбой! Не могу удалить сообщение!
  9. Так если я сделаю функцию статической то она станет одна на все экземпляры. А у меня два эзернета и у каждого свой обработчик прерывания. И как тогда быть? Мне всего-то надо передать в структуру адрес этого обработчика!
  10. Переписываю С программу на С++, уже вроде всё переделал кроме одного места. На С была структура регистрации прерываний для процессора NIos II от Альтеры (используется GCC): alt_avalon_sgdma_register_callback( sgdma_rx_dev, (alt_avalon_sgdma_callback )&tse_sgdmaRx_isr, // <- ругается (alt_u16)ALTERA_TSE_SGDMA_INTR_MASK, sgdma_rx_dev ); где тип alt_avalon_sgdma_callback объявлен так: typedef void (*alt_avalon_sgdma_callback)(void *context) tse_sgdmaRx_isr - непосредственно подпрограмма обработчик прерывания. На С была объявлена как: int tse_sgdmaRx_isr(void * context, alt_u32 irqnum); Всё компилировалось и собиралось. Теперь сделал класс и в нём объявил функцию обработчик: class eth_dev : public eth_cfg { protected: ... public: eth_dev(const uint8_t); int32_t tse_sgdmaRx_isr(void *context, uint32_t irqnum); ... }; Компилирую и получаю такую вот ошибку: converting from `int32_t (eth_dev::*)(void*, uint32_t)' to `void (*)(void*)' Понимаю что каким-то образом надо преобразовать тип, но вот как? Уже и через this делал, никак не получается! Помогите кто может! Как преобразовать вызов функции?
  11. Да делаю именно иерархической многоканальной! Есть такой узел в прикреплённом файле. Сделал из него схемный элемент тоже в другом файле, и хотелось не рисовать кучу логики! Но судя по ответу похоже придётся рисовать кучу логики! Компонент создан правильно, если ставить элементы просто в схеме то всё нормально работает. 1111.bmp 2222.bmp
  12. Вопрос: Есть узел в котором например стоит один инвертор ЛН2 и один элемент ЛА3. Таких узлов надо к примеру 50 штук. Как заставить Альтиум при нумерации использовать сначала все элементы(части) из микросхемы и только затем ставить новую микросхему? Сейчас он ставит соответственно по 50 микросхем, а хочется в 6 и 4 раза меньше соответственно.
  13. Да нет настройки вроде все правильные. Вот кусок кода: void RCC_Configuration(void) { /* Setup the microcontroller system. Initialize the Embedded Flash Interface, initialize the PLL and update the SystemFrequency variable. */ RCC_DeInit(); // Enable external crystal generator RCC_HSEConfig(RCC_HSE_ON); /* Wait till HSE is ready */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); // Enable Prefetch Buffer FLASH_SetLatency(FLASH_Latency_2); // Flash 2 wait state RCC_HCLKConfig(RCC_SYSCLK_Div1); // HCLK = SYSCLK RCC_PCLK2Config(RCC_HCLK_Div1); // PCLK2 = HCLK RCC_PCLK1Config(RCC_HCLK_Div2); // PCLK1 = HCLK/2 RCC_MCOConfig(RCC_MCO_PLLCLK_Div2); // MCO output frequency configure RCC_ADCCLKConfig(RCC_PCLK2_Div6); // ADCCLK = PCLK2/6 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_8); // PLLCLK = 7.3728MHz * 8 = 58.98 MHz RCC_PLLCmd(ENABLE); // Enable PLL while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //* Wait till PLL is ready RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // Select PLL as system clock source while(RCC_GetSYSCLKSource() != 0x08); // Wait till PLL is used as system clock source } RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // DMA clock enable ... Частота кварца 7372800
  14. Может кто подскажет в какую сторону смотреть. Написал программу на C++ под иар 5.50 отладил всё в ОЗУ. Собрался отдавать заказчику, прошил всё во внутренний флэш и получил полный ступор!!! То есть, программа работает, но периодически вылетает в хардфаулт. В ОЗУ всё работает часами! Все опции компилятора одинаковые, уже и листинги все проверил, один к одному с версией в ОЗУ. Единственное, что сразу удалось обнаружить, что программа из флеш работает как минимум в два раза быстрее чем из ОЗУ. Уже неделю бьюсь не могу понять чем работа во флеши так радикально отличается от работы в ОЗУ. Может хоть направления поиска кто даст, куда смотреть. Ерату читал ничего криминального не обнаружил.
  15. Это мой первый проект с плис, так что сильно не пинайте. 8-) Я уже консультировался на телесистемах, во многом помогли там. Но вот один вопрос всё-таки остался. Прилогаю простенький проект сумматора с использованием модуля памяти. Все работает! Но почему-то результат выдаёт не с нулевого адреса а с первого, хотя пишет вроде правильно, судя по диаграмме работы. Может быть кто-нибудь посмотрит и подскажет где у меня ошибка!? Проект сделан в квартусе 7.2 adder.rar