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

Desenix

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

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

  • Посещение

Весь контент Desenix


  1. да вы правы, тут стало пованивать так же как и в телесистемах, когда вместо ответа на вопрос, все стремяться обосрать вопрошавшего, ну да бывает, моральное уродство в наше время сильно распространено.
  2. попахивает двойными стандартами, для своих и для чужих. похоже со стенкой общаюсь.
  3. перечитайте его реплику и цитату которую он привел, и подойдите к этому формально, все сразу станет на свои места. А слова я эти использовал, но только при программировании на PC, в контроллерах я их никогда не использую, ибо вред. дурной ее сделали дурные советы, тема как раз для начинающих изучать ОС, всегда сначало хочется что то попробовать, а потом использовать. Поэтому я тему и создал с расчетом что еще кому нибудь понадобится, но отдельные личности постарались в помойку все превратить.
  4. нет уж, извольте указать в какой части букваря "(глава 4 букваря Кернигана и Ритчи) " сказано какой файл выборать heap_1.c heap_2.c heap_3.c, ведь это было заявлено. Не недо "гениев" защищать. Мои слова относились к флудерам, коих сюда много набежало. Я сразу все разложил по полочкам и спросил каких файлов не хватает для счастья, вместо этого меня начали обсуждать, мне это терпеть ? я не собираюсь ничего терпеть, нечего сказать, лучше промолчать, иначе получите то же самое в ответ.
  5. раньше думал вы умный, а теперь разочаровался, ну да ладно, люди не идеальны, дураки везде есть :) 1. Всех козлами вы сами назвали, а это уже оскорбление общественности. 2. т.е. элементарные знания говорят какой трех фалов heap_1.c heap_2.c heap_3.c надо подключить к проекту на LPC ? ссылку в студию. Этому видимо учат в школе, а я видимо урок прогулял. Неужели в школах уже гениев выпускают ?) "(глава 4 букваря Кернигана и Ритчи) " - там FreeRTOS рассматривают ? не знал не знал, как будет вермя почитаю :) 3. да уж, потрудитесь более не флудить, а то когда мне тут что то надо, я почти ни когда тут не получал ответа, тем более от вас, зато флуду предостаточно.
  6. когда у меня встанет вопрос его работоспособности, я создам другую тему, ибо заголовок этой говорит о проблеме сборки ядра (проекта) И ядро я не кастрировал, а собрал со всеми файлами, по началу я некоторые исключал, с целью поиска ошибки, об чем и отписал. А хвастаться я тоже могу, WinCE на трех процессорах собирал и запускал, при этом дрова править местами серьезно приходилось. Только ни ВинЦЕ ни линух в LPC23xx не залезут. Да, вот залез в port.c для LPC, смотрю как прерывание таймера 0 захватывается, так написано, что или все железо там надо инициализировать или переписать его нафиг, ибо сделано все топорно. Этот захват или учитывать придется в своих драйверах, или переделать под свои драйвера. Видимо сделаю последнее.
  7. странно, я решил проблему, написал как, а меня тут продолжают поучать, и ни на один вопрос ответа не дав, посылать читать док-ю, равносильно просто послать, чего и вам желаю, нет желания отвечать, м.б. лучше промолчать ??? не находите ваша политика - это политика флудера ?
  8. а ты че этот тут флудом занимаешься ? нечего сказать, так зачем тему загаживать мозговым мусором ?
  9. скачал http://sourceforge.net/project/showfiles.p...ckage_id=120544 там уже 5.0.3 есть как как, порт под LPC2xxx есть, разве еще что-то надо ? дрова я пользовать тамошние не собираюсь, примеры проектов так же. а разве есть разница для этой ОС между IAR 4 и 5 ? По моему кроме файлов настроек проекта самого IAR ни какой разницы, а проект я с нуля свой создал. Вы готовый проект искали под используемый компилятор ? нормальный подход, раз в демо-исходниках ОС есть проект под LPC2368, то я содрал оттуда настройки и их пользовал, один только нюанс, я не знал какие файлы надо подключать к проекту, док-ии по этому поводу не нашел, ни кто на этом форуме мне ничего по этому поводу не подсказал. и я :) не люблю переливать из пустого в порожнее, проект не собирался, спросил что еще надо подключить, а меня тут поучают. Сначало на вопросы бы ответили, а потом бы поучали. Многие хвалятся что знают эту ОС, а хоть кто-то написал по пунктам как проект собрать, не зависимо от компилятора и контроллера ? а именно, 1) какие файлы необходимо включать в проект и их комбинации в зависимости от компилятора и контроллера, и от конфигурации. 2) взаимосвязь модулей ОС между собой, кто кого и по какому случаю вызывает, в виде граф. структуры. 3) распределение памяти в ОС итд для начала достаточно п.1.
  10. в настройках что я скопировал, чет многовато под кучу памяти выделяют. та его визардами только обезьян пугать :) разбираться хотим, там утрамбовано как-то не логично, по сути не вижу толковых документов, в основном API описаны. IAR ARM я 5.2 скачал, а FreeRTOS 5.0.2 где скачал не помню, файл называется FreeRTOSV5.0.2.zip
  11. хорошо если так, тогда я поурежу ему аппетиты, а то мне буфера нужны будут большие. та зачем в чужом коде разбираться, вырезая куски, лучше настройками ОС лишнее по отключать. а зачем его читать ? я сразу 5.0.2 и скачал, ни куда ни откуда не мигрировал :)
  12. В писании сказано, не поминай имя его всуе :) Ты че заповеди нарушаешь ?)
  13. из вас помощники как из меня балерина в portasm.s79 закоментировал //#include "FreeRTOSConfig.h" и проект собрался, еще добавил heap_2.c не знаю тот или не тот, не важно, потом разберусь. PS: тут случаем ни кто икону дяди билла не молится ? :)
  14. по ассемблеру я не вижу откуда проблема появляется, там такие файлы не инклудятся, и ошибка явно глюк компилятора. не путаю, нормальную кучу лучше с MMU совместно пользовать, а то сильно дырявый сыр получится. судя по скудной док-ии, я быстрее напишу тупую переключалку сам. где вы видели готовый проект под LPC2368 для IAR ARM 5.2 ??? а готовое под IAR не конвертится в IAR ARM 5.2 и потом, сегодня первый раз сел посмотреть что это за ... и уже прыгать на другое ? может сразу свое писать ? чтоб не терять время.
  15. лучше б что по делу сообщили. потому что выбор не большой, или ошибки линковщика, или компилятора portasm.s79 Error[3]: Invalid #include file name C:\Program Files\IAR Systems\Embedded Workbench 5.2 Evaluation\ARM\INC\DLib_Defaults.h 41 Error while running Assembler ругается на эту строку #include _DLIB_CONFIG_FILE_HEADER_NAME файла DLib_Defaults.h это он пускай сколько влезет использует, когда есть аппаратная поддержка, а когда нет, изволь отключить, а мне от его оси только переключалка нужна.
  16. в наличии IAR ARM 5.2 (30 дневная) FreeRTOS 5.0.2 процессор типа LPC2368 в проекте подключены файлы: croutine.c list.c port.c queue.c tasks.c еще мой main.c конфиг оси взял из демо проекта, в опциях компилятора указал LPC2000_IAR пока в моей функции main не делаю вызовов API OS, проблем нет, как только вставлю vTaskStartScheduler(); в int main() лезут ошибки линковщика Error[Li005]: no definition for "vPortFree" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\tasks.o] Error[Li005]: no definition for "vPortStartFirstTask" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\port.o] Error[Li005]: no definition for "vPortPreemptiveTickEntry" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\port.o] Error[Li005]: no definition for "pvPortMalloc" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\tasks.o] Error while running Linker поискал функцию vPortFree она есть только в port.c для PIC18 и AVR32 надо еще что то подключить ? и не нашел в документации, какие файлы для данного порта подключать в проект. Так например при подключении portasm.s79 лезут ошибки, пока выкинул. PS: мне от ОСи нужен только переключатель задач, всякое динамическое выделение памяти на контроллере без аппаратной поддержки динамического распределения, считаю извращением и использовать не планирую. Так же не нужны очереди, т.к. буду свои писать, более приспособленные под мою задачу.
  17. FAQ

    если сравнить J-TRACE-ARM-2M и J-LINK то станет понятно чем они по возможностям отличаются, вот только J-TRACE-ARM-2M стоит не гуманных денег :) А точки останова умеет добавлять не отладчик, а скорее драйвер, бо он прошивку правит перед заливкой.
  18. TFT+LPC2478

    если хоть что то выводит, значит с большой вероятностью контроллер правильно настроил, а если не то что надо, значит неверно указал адрес FrameBuffer или он не верно заполнен информацией. PS: с этим контроллером не работал.
  19. FAQ

    Хотелось бы тут увидеть какой нить обзор по внутрисхемным отладчикам для ARM7/ARM9. Задумался о выборе. Интересует: Число точек останова поддержанных самим отладчиком Возможности отладчика Глючность дров/железа Гибкость настроек Цена и возможность купить.
  20. ну да, еще стандартный startup забыл приложить, забыл сказать, использовал IAR ;----------------------------------------------------------------------------- ; This file contains the startup code used by the ICCARM C compiler. ; ; The modules in this file are included in the libraries, and may be replaced ; by any user-defined modules that define the PUBLIC symbol _program_start or ; a user defined start symbol. ; To override the cstartup defined in the library, simply add your modified ; version to the workbench project. ; ; All code in the modules (except ?RESET) will be placed in the ICODE segment. ; ; $Revision: 1.2 $ ; ;----------------------------------------------------------------------------- ; ; Naming covention of labels in this file: ; ; ?xxx - External labels only accessed from assembler. ; __xxx - External labels accessed from or defined in C. ; xxx - Labels local to one module (note: this file contains ; several modules). ; main - The starting point of the user program. ; ;--------------------------------------------------------------- ; Macros and definitions for the whole file ;--------------------------------------------------------------- ; Mode, correspords to bits 0-5 in CPSR MODE_BITS DEFINE 0x1F ; Bit mask for mode bits in CPSR USR_MODE DEFINE 0x10 ; User mode FIQ_MODE DEFINE 0x11 ; Fast Interrupt Request mode IRQ_MODE DEFINE 0x12 ; Interrupt Request mode SVC_MODE DEFINE 0x13 ; Supervisor mode ABT_MODE DEFINE 0x17 ; Abort mode UND_MODE DEFINE 0x1B ; Undefined Instruction mode SYS_MODE DEFINE 0x1F ; System mode ;--------------------------------------------------------------- ; ?RESET ; Reset Vector. ; Normally, segment INTVEC is linked at address 0. ; For debugging purposes, INTVEC may be placed at other ; addresses. ; A debugger that honors the entry point will start the ; program in a normal way even if INTVEC is not at address 0. ;--------------------------------------------------------------- MODULE ?RESET COMMON INTVEC:CODE:NOROOT(2) PUBLIC __program_start EXTERN ?cstartup ; EXTERN undef_handler, swi_handler, prefetch_handler ; EXTERN data_handler, fiq_handler EXTERN irq_handler CODE32; Always ARM mode after reset org 0x00 __program_start ldr pc,=?cstartup ; Absolute jump can reach 4 GByte ; ldr b,?cstartup ; Relative branch allows remap, limited to 32 MByte org 0x04 undef_handler ldr pc,=undef_handler org 0x08 swi_handler ldr pc,=swi_handler org 0x0c prefetch_handler ldr pc,=prefetch_handler org 0x10 data_handler ldr pc,=data_handler org 0x18 ldr pc,=irq_handler org 0x1c fiq_handler ldr pc,=fiq_handler ; Constant table entries (for ldr pc) will be placed at 0x20 org 0x20 LTORG ; ENDMOD __program_start ENDMOD ;--------------------------------------------------------------- ; ?CSTARTUP ;--------------------------------------------------------------- MODULE ?CSTARTUP RSEG IRQ_STACK:DATA(2) RSEG SVC_STACK:DATA:NOROOT(2) RSEG CSTACK:DATA(2) RSEG ICODE:CODE:NOROOT(4) PUBLIC ?cstartup EXTERN ?main ; Execution starts here. ; After a reset, the mode is ARM, Supervisor, interrupts disabled. CODE32 ?cstartup ; Add initialization nedded before setup of stackpointers here ; Initialize the stack pointers. ; The pattern below can be used for any of the exception stacks: ; FIQ, IRQ, SVC, ABT, UND, SYS. ; The USR mode uses the same stack as SYS. ; The stack segments must be defined in the linker command file, ; and be declared above. mrs r0,cpsr ; Original PSR value bic r0,r0,#MODE_BITS ; Clear the mode bits orr r0,r0,#IRQ_MODE ; Set IRQ mode bits msr cpsr_c,r0 ; Change the mode ldr sp,=SFE(IRQ_STACK) & 0xFFFFFFF8 ; End of IRQ_STACK bic r0,r0,#MODE_BITS ; Clear the mode bits orr r0,r0,#SYS_MODE ; Set System mode bits msr cpsr_c,r0 ; Change the mode ldr sp,=SFE(CSTACK) & 0xFFFFFFF8 ; End of CSTACK #ifdef __ARMVFP__ ; Enable the VFP coprocessor. mov r0, #0x40000000 ; Set EN bit in VFP fmxr fpexc, r0 ; FPEXC, clear others. ; Disable underflow exceptions by setting flush to zero mode. ; For full IEEE 754 underflow compliance this code should be removed ; and the appropriate exception handler installed. mov r0, #0x01000000 ; Set FZ bit in VFP fmxr fpscr, r0 ; FPSCR, clear others. #endif ; Add more initialization here ; Continue to ?main for more IAR specific system startup ldr r0,=?main bx r0 LTORG ENDMOD END
  21. по поводу фрагментации, у меня еще мысль возникла, если использовать не просто прямой указатель на блок памяти, а указатель на указатель. Тогда второй(системный) можно перемещать вместе с блоком памяти, а первый(пользовательский) изменятся не будет. Правда все это надо учесть при написании кода.
  22. с данной ОС совсем не знаком, но тут прочитал что у нее есть менеджер памяти, а кто нибудь может кратенько объяснить как он устроен ? я не представляю себе такой менеджер без поддержки MMU в процессоре. Ведь фрагментация возникать должна, а как с ней бороться ? если указатели уже розданы задачам. PS: подумываю об использовании ОС.
  23. для армов EP9312, S3C2410, LPC2368 всегда писал и инициализировал обработчики прерывания сам, а не полагался на среду разработки, и не имел проблем. Если вы не хотите изучать тонкости процессора, то зачем вы взялись его программировать ? Отдайте эту задачу системному программисту, а сами пишите только пользовательский уровень. Изучите как работает контроллер прерываний, как и что в нем надо инициализировать, как надо построить обработчик прерываний, что надо инициализировать в переферии для разрешения прерываний итд. На самом деле контроллер в ARM хоть и "крутой", но мне кажется немного не доинтегрирован в ядро, в идеале надо было, чтоб не обработчик обрабатывал переход по адресу, а само ядро аппаратно. на всякий случай кусок кода, правда там таймер и Ethernet, но думаю суть понятна будет, главное что камень EP9312 // Interrupt handlers. void TimerInterrupt() { (*timer_function)(); // Call timer callback function. Timer3Clear = 0x0; // Clear timer 3 interrupt line. } // IRQ interrupt handler. // Only the timer interrupt is used by this example. __irq __arm void irq_handler(void) { void (*interrupt_function)(); unsigned int vector; // Called at 1000 Hz rate. vector = VIC2VectAddr; // Get interrupt vector. interrupt_function = (void(*)())vector; (*interrupt_function)(); // Call vectored interrupt function. VIC2VectAddr = 0; // Clear interrupt in VIC. } // Interrupt functions. void EP9312InitInterrupt(void(*timer_func)()) { // Setup timer callback function. timer_function = timer_func; // Setup interrupt controller. VIC1Protection = 0; VIC2Protection = 0; // Disable all interrupts VIC1IntEnClear = 0xffffffff; VIC2IntEnClear = 0xffffffff; VIC2IntSelect &= ~TC3OI_bit; // IRQ on timer 3 line. VIC2VectAddr0 = (unsigned int)&TimerInterrupt; VIC2VectCntl0 = 0x20 | VIC2_TC3OI; // Enable vector interrupt for timer 3. VIC2IntEnable |= TC3OI_bit; // Enable timer 3 interrupt. VIC2IntSelect &= ~TC39OI_bit; // IRQ on MAC line. VIC2VectAddr1 = (unsigned int)&InterruptMac; VIC2VectCntl1 = 0x20 | VIC2_INT_MAC; // Enable vector interrupt for MAC. VIC2IntEnable |= TC39OI_bit; // Enable MAC interrupt. }
  24. LPC2368/78 SSP в DMA режиме

    какое-то время назад баловался камнями LPC2368/78, и китом на LPC2378, загружал примеры и пробовал, вроде как работали, но мне понадобилось через SSP по DMA передавать пакеты разной длины, загрузил я пример SSP.c - копирование одного блока памяти в другой через петлю на SSP, компильнул, запускаю, работает, смотрю в отладчике кусок памяти в 256 байт копируется. Далее поколдовал над кодом, сделал скажем 100 байт, запускаю, а эта зараза опять 256 копирует, и так с любыми меньшими значениями. Собственно вопрос, возможно ли DMA SSP канал запрограммировать на меньшее значение ? Если нет, то это баг или фича камешка ? в DS в своё время не нашел ничего. И просьба, если у кого есть возможность поковырять пример из IAR для SSP, проверить возможность передачи меньших объёмов. У меня в данный момент нет доступа к киту и проверить сам не могу. Для чего мне это нужно, есть мысль команды и данные во внешнюю flash передавать в пакетном режиме, а не побайтово, на что тратится много процессорного времени. Да и возник вопрос выбора камня под новый проект, если DMA все таки с недоработкой, то от камешка скорее всего откажусь.
  25. Кто работал с ADE7569, ADE7566, ADE7169, ADE7166 ??? Купили под разработку несколько штук ADE7569, контроллер работает, а каналы измерения молчат, разве что шамана не вызывали, есть подозрения что подсунули не серийные образцы, а тестовые, которым место в помойке. Слышал что народ брал эти МС для разработок, но менеджеры не сознаются кто, хотелось бы узнать, как у других идут дела, что-то получается ? Если да, то где покупали, или что делали ?
×
×
  • Создать...