Jump to content

    

Croman13n3c

Участник
  • Content Count

    30
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Croman13n3c

  • Rank
    Участник
  1. Как минимум по ним не видно дребезга, или как уже сказал: настолько мал что осцилл не захватил. А вот добавить защиту от дребезга стоит.
  2. От фирмы Nexperia. В даташите указано что по клоку стоит триггер Шмитта, и цитирую даташит:
  3. Добрый день Столкнулся с проблемой переключения выходов Q,Q! в схеме коммутатора питания на D-триггере 74LVC1G74 (см. attach) - смена состояния выходов происходит не только по положительному фронту, но и по спадающему. Грешил на дребезг контактов тактовой кнопки, но посмотрев осциллографом ничего не обнаружил (или импульсы настолько малые что осцилл их не захватил). Возможно кто-нибудь сталкивался с похожей проблемой и подскажет куда копать ?
  4. Кодfloat RoundPrecision(float value, float precision) {     return floorf(value/precision + 0.5f)*precision; } Использование RoundPrecision (100.125f, 0.01f)
  5. Извращенцы есть, за билд для win64
  6. Пытаюсь выделить секцию фиксированного размера. Но компилятор выделяет только размер соответствующий, включенных в неё переменных.Пока поставил костыль в виде массива констант включенный в секцию. Код.conf : AT (0x28000)         {         . = ALIGN (4);         _conf_begin = .;         KEEP(*(.conf  .conf*))         . = ALIGN(4);         _conf_end = .;         } >eeprom Регион eeprom - eeprom (rx) : ORIGIN = 0x00028000, LENGTH = 0x00007FFF Компилятор - gcc 4.7.2 , тулчейн yagarto.
  7. Файловая система + не СД карта

    Имеем FAT12 : 1. 0 сектор - MBR 2. 1-18 сектора - сам фат и его копия ( по 9 секторов ) 3. 19-32 сектора - корневая директория (14 секторов по 16 директорий) Я так понимаю при записи в файл будут меняться сектора с 1-18, при создании или удалении файлов - 19-32 сектора или ,если файл только 1, будет стираться только 19 сектор ?
  8. Файловая система + не СД карта

    Количество перезаписи секторов ограничено. Каждая запись в файловую систему будет сопровождаться перезаписью служебной информации,а это будут одни и теже сектора. А портировать fatfs на serial flash не предаставляет большой сложности: там будут нужны функции инициализации, статуса, записи и чтения сектора.
  9. Цитата(Сергей Борщ @ Dec 13 2012, 17:20) В map нет ни одного упоминания g_pfnVectors. В каком файле находится объявление этого массива? Компилируется ли этот файл? Передается ли его объектник линкеру? Находится в startup_LPC17xx.c. Не компилировался и не передавался (упс, еще не собиралась lpc17xxlib), но после исправления лучше не стало - линкер сыплет ошибками [attachment=73458:linker.txt] Цитата(mdmitry @ Dec 13 2012, 18:08) А не является ли это куском startup-кода от CoIDE, который линкуется им по умолчанию (библиотека) и о котором gcc не знает ничего. (Аналогия с CodeSourcery, версии lite и коммерческая) Является , после перадачи линкеру объектника - он сыплет ошибками (прикрепил отчет выше) Цитата(klen @ Dec 13 2012, 21:56) похоже на то..... но какбы gcc принципиально никаких предположений не делает - какое ему дело до стартап кода и таблицы векторов - он их и вообще не различает одругого кода - зачем ему оно. это уже ты сам должен скомпилять все что нужно и передать ликуру - это твоя забота чтобы там была таблица векторов и твоя забота чтоб ее линуер использую тови указания в скрипте положил по нужному адресу. я вот мотрю тоже пока ниче непонятно. если найду косяг отпишусь. код Reset_Handler в студию Код#pragma weak Reset_Handler = Default_Reset_Handler void Default_Reset_Handler(void) {   /* Initialize data and bss */   unsigned long *pulSrc, *pulDest;   /* Copy the data segment initializers from flash to SRAM */   pulSrc = &_sidata;   for(pulDest = &_sdata; pulDest < &_edata; )   {     *(pulDest++) = *(pulSrc++);   }      /* Zero fill the bss segment.  This is done with inline assembly since this      will clear the value of pulDest if it is not kept in a register. */   __asm("  ldr     r0, =_sbss\n"         "  ldr     r1, =_ebss\n"         "  mov     r2, #0\n"         "  .thumb_func\n"         "zero_loop:\n"         "    cmp     r0, r1\n"         "    it      lt\n"         "    strlt   r2, [r0], #4\n"         "    blt     zero_loop");   __asm("  ldr     r0, =_sbss1\n"           "  ldr     r1, =_ebss1\n"           "  mov     r2, #0\n"           "  .thumb_func\n"           "zero_loop1:\n"           "    cmp     r0, r1\n"           "    it      lt\n"           "    strlt   r2, [r0], #4\n"           "    blt     zero_loop1");   /* Setup the microcontroller system. */   SystemInit();        /* Call the application's entry point.*/   main(); } Цитата(_Артём_ @ Dec 13 2012, 23:09) Может добавление такой строки КодENTRY(Reset_Handler) что-то изменит? Или она в другом файле? Не изменило, в файле startup_LPC17xx.c Новый map после добавления добавления недостающих файлов: [attachment=73459:PIR_NEW.map.txt] После последних исправлений добавил заглушки к newlib - сборка завершена успешно. Надо мне внимательней читать выхлоп средств сборки. Спасибо за помощь.
  10. Вот map файл: [attachment=73447:PIR_NEW.map.txt]
  11. Таблица векторов есть и помещается в isr_vector: Код__attribute__ ((section(".isr_vector"))) void (* const g_pfnVectors[])(void) = {       /*----------Core Exceptions------------------------------------------------ */   (void *)&pulStack[STACK_SIZE-1],     /*!< The initial stack pointer         */   Reset_Handler,             /*!< Reset Handler                               */   NMI_Handler,               /*!< NMI Handler                                 */   HardFault_Handler,         /*!< Hard Fault Handler                          */   MemManage_Handler,         /*!< MPU Fault Handler                           */   BusFault_Handler,          /*!< Bus Fault Handler                           */   UsageFault_Handler,        /*!< Usage Fault Handler                         */   0,0,0,0,                   /*!< Reserved                                    */   SVC_Handler,               /*!< SVCall Handler                              */   DebugMon_Handler,          /*!< Debug Monitor Handler                       */   0,                         /*!< Reserved                                    */   PendSV_Handler,            /*!< PendSV Handler                              */   SysTick_Handler,           /*!< SysTick Handler                             */      /*----------External Exceptions---------------------------------------------*/   WDT_IRQHandler,            /*!<  0: Watchdog Timer                          */   TIMER0_IRQHandler,         /*!<  1: Timer0                                  */   TIMER1_IRQHandler,         /*!<  2: Timer1                                  */    ...............
  12. Поизучав map файл стало ясно, что он практически все секции исключил из бинарника КодDiscarded input sections .text          0x00000000        0x0 obj/main.o .data          0x00000000        0x1 obj/main.o .bss           0x00000000       0x14 obj/main.o ........... Секция линкер скрипта относящаяся к rom Код    .text :     {         KEEP(*(.isr_vector .isr_vector.*))         *(.text .text.* .gnu.linkonce.t.*)                    *(.glue_7t) *(.glue_7)                                 *(.rodata .rodata* .gnu.linkonce.r.*)                                       } > rom          .ARM.extab :     {         *(.ARM.extab* .gnu.linkonce.armextab.*)     } > rom          __exidx_start = .;     .ARM.exidx :     {         *(.ARM.exidx* .gnu.linkonce.armexidx.*)     } > rom     __exidx_end = .;          .conf : AT (0x28000)         {         . = ALIGN (4);         _conf_begin = .;         KEEP(*(.conf  .conf*))         . = ALIGN(4);         _conf_end = .;         } >rom [attachment=73443:PIR_NEW.map.txt]
  13. Стараюсь перенести проект из CoIDE в Eclipse Juno. Заготовку makefile`а взял из scmrtos. Сами объектники компилируются, но не собираются в окончательный бинарник: Код   text       data        bss        dec        hex    filename       0          0          0          0          0    exe/PIR_NEW.elf Подозреваю ошибку в параметрах линкера, но вот что именно не так - хз. [attachment=73410:makefile.txt] [attachment=73411:LPC1756.ld.txt]
  14. Отладка в CoIDE

    Попытка обойти прерывание с помощью handle SIGTRAP nostop не помогла. ( так же и как monitor reset 0). Судя по гуглу эта ошибка иногда возникает , но вот однозначного решения нету