Jump to content

    

Dark0711

Участник
  • Content Count

    37
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Dark0711

  • Rank
    Участник
  1. boost

    Что удалось выяснить. 1. Не все библиотеки надо собирать, а только Boost.Chrono Boost.Context Boost.Filesystem Boost.GraphParallel Boost.IOStreams Boost.Locale Boost.MPI Boost.ProgramOptions Boost.Python Boost.Regex Boost.Serialization Boost.Signals Boost.System Boost.Thread Boost.Timer Boost.Wave 2. Нужна бородатая версия boost с поддержкой с99 Это видимо 1.39 или 1.40(Есть сомнения), выше не смотрел,1.47 уже одни ошибки. Толком не проверял смотрел только boost.bing, boost.range, boost.array. Интересно а ARM toolchain уже поддерживает C++11 и C++14 ?
  2. boost

    Всем доброго дня. Подскажите пожалуйста как можно собрать boost под IAR.
  3. Добрый день помогите пожалуйста, пытаюсь запустить DMA отправку в SPI по таймеру. Проходит первый пакет и всё, передача останавливаеться, хотя таймер щелкает. Timer = LPC_TIM0; ChannelNum = 0; SSP_ConfigStructInit(&SSP_ConfigStruct); SSP_ConfigStruct.CPHA = SSP_CPHA_SECOND; SSP_ConfigStruct.CPOL = SSP_CPOL_LO; SSP_ConfigStruct.Databit = SSP_DATABIT_16; SSP_Init(SSP_ID,&SSP_ConfigStruct); SSP_Cmd(SSP_ID, ENABLE); GPDMA_Channel_CFG_Type GPDMACfg; GPDMACfg.ChannelNum = ChannelNum; GPDMACfg.SrcMemAddr = (uint32_t)&Buff; GPDMACfg.DstMemAddr = 0; GPDMACfg.TransferSize = sizeof(Buff)/2; GPDMACfg.TransferWidth = 0; GPDMACfg.TransferType = GPDMA_TRANSFERTYPE_M2P; GPDMACfg.SrcConn = GPDMA_CONN_MAT0_1; GPDMACfg.DstConn = GPDMA_CONN_SSP0_Tx; GPDMACfg.DMALLI = 0; GPDMA_Setup(&GPDMACfg); GPDMA_SetIRQAddr(ChannelNum,SSP2_DMA_IRQHandler);//Прерывание SPI для DMA SSP_DMACmd (SSP_ID,SSP_DMA_TX, ENABLE); GPDMA_ChannelCmd(ChannelNum, ENABLE); TIM_ConfigCFG.PrescaleValue = 100; TIM_ConfigCFG.PrescaleOption = TIM_PRESCALE_USVAL; TIM_MatchCFG.MatchChannel = 1; TIM_MatchCFG.IntOnMatch = true; TIM_MatchCFG.ResetOnMatch = true; TIM_MatchCFG.StopOnMatch = false; TIM_MatchCFG.ExtMatchOutputType = TIM_EXTMATCH_TOGGLE; TIM_MatchCFG.MatchValue = 10000; TIM_Init(Timer, TIM_TIMER_MODE, &TIM_ConfigCFG); TIM_ConfigMatch(Timer, &TIM_MatchCFG); TIM_ClearIntPending(Timer, TIM_MR1_INT); TIM_Cmd(Timer, ENABLE); NVIC_EnableIRQ(TIMER0_IRQn);
  4. Vinculum II - FTDI

    Проект уже собран в виде устройства. Библиотеку Я получил от них. Нужно написать им письмецо и заполнить форму и всё.
  5. Vinculum II - FTDI

    Не это не то, там готовая либа. Добавил и всё. А если FATFS прикручивать, можно увязнуть надолго.
  6. Vinculum II - FTDI

    Добрый день. Есть у кого к этому чуду(Vinculum II - FTDI) библиотека LFAT, для работы с длинными именами в FAT. А то производитель зажал и требует лицензию от Microsoft.
  7. lpc1788 iap

    Вобшем код от Golikov A., не очень помог, все осталось также. Поробую с частотой процессора поиграть.
  8. lpc1788 iap

    Спасибо большое учту. Мысли примерно в этом же направлении и крутились..
  9. lpc1788 iap

    Да, программа использует только первые 8кб ОЗУ
  10. lpc1788 iap

    Спасибо большое, сейчас опробую и отпишусь.
  11. lpc1788 iap

    Вот скорей всего так и буду делать, размешать в начале и проверять есть чего или нет. А причина почему вызываю загрузчик из приложения, что бы уменьшить код загрузчика. В основном приложении гружу прошивку в SDRAM через USB, прыгаю на загрузчик, на всё готовое, инициализированное =). И просто копирую с SDRAM в буфер в RAMe, кусочками по 256 байт и пишу во флеш. Просто обидно, хочется разобрать в причинах нестабильной работе IAP, а то он так в середине флеша напишет мне лабуду, а Я потом буду гадать, чего это основная программа падает.
  12. lpc1788 iap

    Идея была в том, что бутлодел заливает прошивку и просто ресетит микроконтроллер и он весело стартует с новой прошивкой Прерывания отрубаю, таблицы векторов перемешаю. В errata вычитал что нужно в Pboost тройку вставить и в Matrix arb еденицу в бит rom lat, не помогло ! Как Я понял из errata что еще частоту можно понизить и типо все пучком будет.
  13. lpc1788 iap

    Всем привет! Нужна помошь, никак не могу разобраться. Решил Я написать свой bootloader, и разместил его в конце флеша. Основная программа вызываеть его когда хочет обновиться. Сделал, все залил. Бутлодер грузиться, находит файл прошивки и должен запихать ее с нолевого адреса флеша. Но при записи(256 512 байит или более)портиться первый две или три пачки, пишиться какаято чушь, а далее все как положено записываеться.Сектора флеша форматирую перед записью. Может кто сталкивался с проблемой???
  14. FreeRTOS + emWin

    Да к сожалению Я удалили проект с Яндекса, сейчас скину что-нибудь более менее рабочее. Похожая сборка под VS2010 и IAR 6 http://yadi.sk/d/OHYud91U4NlWI Есть версия под lpc2478 c дисплеем 320*240. Пишите.
  15. FreeRTOS + UART

    RTOS удобнее использовать, потому-что ещё куча всего по мимо UART. Задачу решил так: static uint8_t Raw[SIZE_BUFF];//Буфер для UART static volatile uint32_t RxFrameLength;//Счётчик символов //RxFrameLength - счётчик длина принятых сообщений перед отправкой запроса в UART обнуляеться. static xSemaphoreHandle xSemaphoreRx; //Семафор приёма данных от UART static portBASE_TYPE xHigherPriorityTaskWoken; /**/ / * Обработчик для прерывания от UART*/ /**/ static void Comm_UART_RxHandler(uint8_t Data) //Приём данных из UART { if (Data == 0x00) // Ждем конец посылки { if (RxFrameLength > 0) { // RxFrameReady = 1; xSemaphoreGiveFromISR(xSemaphoreRx, &xHigherPriorityTaskWoken); //Отдаём семафор } } else { if (RxFrameLength < SIZE_BUFF) Raw[RxFrameLength++] = Data; else { RxFrameLength = 0; } } } /**/ /*Задача обработчик*/ /**/ void Task(void* P) { if (xSemaphoreTake(xSemaphoreRx, Timeout) == pdTRUE) //:Ждём ответа определенное время { //Разгребаем данные } }