Jurdens
Свой-
Постов
106 -
Зарегистрирован
-
Посещение
Весь контент Jurdens
-
Как на счет продажи платы (запаянной и незапаянной?)
-
В С и С++ есть понятие указателя на неопределенный тип (*void) который можно преобразовать (типизировать) под любой тип данных. , понятие указателя на функцию. а зачем ? когда можно использовать 255 конструкций if else или 16 switch case в которые вложены еще 16 switch case Иногда при разработке пишут несколько человек и один ставит другому задачу вот моя такая написать функцию которая вызывает функцию а какую это определяется динамикой работы всего устройства в процессе его работы некий пользователь нажимает кнопочки и при этом надо выполнять одни функции изменяются показания датчиков ,которые опрашивает устройство, надо, выполнять другие у которых есть аргументы и еще и разные. Этим всем занимается другой человек. Просто лишний раз неохота его беспокоить и с другой стороны интересно сталкивались ли другие с подобными задачами. Можно конечно сказать примерно тоже что на этом форуме типа и немороч мне голову. Но это не корректно потому что такие приемы применяют и они работают , например в при написании операционок. Обещали их прислать.
-
А задача такая запускать произвольную функцию по таймеру через время Time. У запускаемой функции неизвестен тип параметра (так надо ) в общем случае и возвращаемый параметр для этого мы должны передать ее адрес в функцию. DelayStart(unsigned Time, *Func(?)); Подумал в С++ есть механизм передачи по ссылке F(&data1,&Func1) может тут как то поэксперементировать?
-
Какие спец эффекты можно ожидать при преобразовании типов указателей на функцию В параметрах функции. Например определим тип указатель на функцию с одним параметром типа указатель на неопределенный тип , функция ничего не возвращает typedef void (*CPU_FNCT_PTR)(void *); и тип указатель на функцию typedef void (*CPU_FNC)(char); void func2(char ParF2 ); char Data; func1( void (* Fnc_par)(void *),void * ptrPar); в параметре функции func1 передаем указатель на функцию с одним параметром типа указатель на неопределенный тип , функция ничего не возвращает. Передадим указатель на функцию func2 как параметр func1 (приведя ее к типу CPU_FNCT_PTR) и передадим указатель на переменную Data как второй параметр приведя ее к типу void * ;. Получится такой вызов func1( (CPU_FNCT_PTR) func2, ( void *)Data); ……. func1( void (* Fnc_par)(void *),void * ptrPar) { *Fnc_par( * ptrPar); // Сработает func2 ? или // надо преобразовать *((CPU_FNC ) Fnc_par) ( ( сhar*) ptrPar); }; А хотелось бы просто указатель на произвольную функцию и ее аргумент тип которого заранее неизвестен
-
Скажите пожалуйста есть ли стандартная (или не стандартная) функция разбора строки на подстроки по признаку заранее известного разделителя пробела например. а результат грузит в какой ни будь массив строк А (или указателей на строки) fun("йцук фыва ячсм"," ",A); A[0] -> йцук A[1] -> фыва A[2] -> ячсм
-
Нашел выход уарта волею седеб шел на сброс
-
u*c*Prob болеет
Jurdens опубликовал тема в Операционные системы
У кого ни будь есть лекарство? для этого чуда. -
Понятно Увидел интересный прием ,может кому пригодится, как скопом объявлять функции как внешние С в зависимости от того куда попали в С-файл или CPP-файл , в заголовочном файле #ifdef __cplusplus extern "C" { #endif void MyFunc1(void ); void MyFunc2(char); . . . . #ifdef __cplusplus } #endif __cplusplus определяет компилятор.
-
Ну а если ,волею судеб, нужно вызвать функцию CPP или, не приведи господь, вызвать метод экземпляра класса в модуле С ? Это можно сделать? и как?
-
Спасибо мне подойдет приведение типов. А вот еще одно при вызове функций С в модууле CPP - в файле *.cpp линкер ругается Error[e46]: Undefined external "BSP_Init()" referred in app ( C:\ARM\UCOS\UII\Micrium\Software\EvalBoards\ => нужно описывать функции С вызываемые из модулей CPP как extern "C" в моем случае extern "C" void BSP_Init(void )" что то еще надо ? есть какие нибуть ньюансы использования С-функций в CPP-файлах.грабли ?
-
Есть рабочий проект под uCOS на С После того как я поставил в настройках проекта (среда IAR) галочку Extended Embedded C++ компилятор стал ругаться на все фрагменты содержащие строковые константы в параметрах функций типа OSTaskNameSet(APP_TASK_START_PRIO, "Startup", &err); на параметр "Startup" OS_StrCopy(s, "uC/OS-II: Vx.yy"); на параметр "uC/OS-II: Vx.yy" Error[Pe167]: argument of type "char const *" is incompatible with parameter of type "INT8U *" C:\ARM\UCOS\UII\Micrium\Software\EvalBoards\NXP\LPC2138\IAR\OS-View-LCD\app.cpp 198 несоответствие типов все понятно Но почему С компилятор не ругался ? И что делать сейчас есть может какая директива компилятору ? Можно конечно и так.. INT8U G1[]="Startup"; . . . OSTaskNameSet(APP_TASK_GRAPHOUT_PRIO, G1, &err); и получается но может можно как то еще дать знать компилятору о том что INT8U* и char const *" compatibl?
-
uC/OS-II
Jurdens ответил one_man_show тема в uC/OS-II
в разделе триалов только это - Index of /downloads/trials AN-3032-V100.zip 07-Mar-2007 22:41 3.4M RAM-Calc.xls 07-Mar-2007 22:41 31K trialfs.zip 07-Mar-2007 22:41 2.0M trialgui1bpp.zip 07-Mar-2007 22:42 2.1M trialgui2bpp.zip 07-Mar-2007 22:42 2.1M trialgui4bpp.zip 07-Mar-2007 22:43 2.1M trialgui8bpp.zip 07-Mar-2007 22:43 2.1M trialgui16bpp.zip 07-Mar-2007 22:42 2.1M trialgui32bpp.zip 07-Mar-2007 22:43 2.1M uC-GUI-FontConvertDemo.zip 07-Mar-2007 22:43 190K uCOS-II-RAM-Calc.xls 07-Mar-2007 22:43 30K -------------------------------------------------------------------------------- может есть еще другой?Дай ссылку пжл -
uC/OS-II
Jurdens ответил one_man_show тема в uC/OS-II
Новее невидел если найдешь выложи для общего пользования . Появилась Micrium µC/Probe Run-Time Monitoring http://www.micrium.com/products/probe/probe.html но в ихней папке downloads/ я не нашел ее.Видимо нужно через регистрацию.Может у кого есть? -
Скачал порт uCOS для lpc 2138 там был пример одновременно для uCOSView и uC/LCD в одном проекте. Установил конфигурацию OS_VIEW_MODULE 1 (вкл) OS_VIEW_COMM_SEL OS_VIEW_UART_0 (в проекте было OS_VIEW_UART_1) скомпилировал, запустил дебагер, через jlink, и ИАР завис не выйдя на main даже OS_VIEW_COMM_SEL меняю на OS_VIEW_UART_1 то ИАР не виснет (но и обмена нет естественно) Кто нибудь сталкивался с чем то подобным?Что делать?
-
Переход Philips->Atmel
Jurdens ответил serj_obninsk тема в ARM
Не понимаю нафиг тебе переходить. Я вот обратно с SAM7 перехожу на LPC Более современные модели лишены LPC многих своих недостатков и на данный момент эта ветьвь гораздо привлекательнее. На gaw.ru есть руское описание переферии сам7. -
Решил подлючить еще один дисплей от сотового(до этого был нокоя 6610 с контроллером филипс) и всегда считал что их существует 2 вида с контроллером епсон зеленый, к которому трудно подпаяться, и филипс- коричневый у которого на шлейфе широкие площадки( фото последнего сдесь http://thomaspfeifer.net/ ). Пошел в магазин купил а там еще один вид там отличие филипса в том что контактов 10 а не 11 и расположены они не подряд а вперемешку (я прозвонил) программа на филипс с ним неработает кто нибудь встречался с таким видом ? что там за контроллер?
-
Подал на ножку erase 3,3v а затем вновь произвел запись все пошло.
-
После команды erase chip (вернее при ее выполнении ) программой J-Flash 3.38 прекратилась связь после попытки законнектится повторно (и неоднократно) - надпись что не найдено ядро арм 7 /9 и failed to connect. Что делать перепаивать кристал ? или комбинацией ножек можно восстановить.
-
Я обнаружил что стирается первая строка с нулевого адреса. когда загружаю то там переход на стартап ldr pc,[#pc+24] а когда включаю выключаю и запускаю J-LINK без загрузки на нулевом адресе andeq R0,R0,R0
-
Наконец то запустил отладку из флеша устройства на SAM7 с uCOS ом ( использую J-LINC ом ) линковал в 0 адреса флеша ремап невключаю, гружу программу в 0x00100000 ( как рекомендуют в AN 1014).Все работает проверил программа с 0- х адресов и они немодифицируются записью. Затем выключаю устройство и включаю снова (программа ведь во флеше) но программа не работает. почему непойму.Кто что может подсказать,
-
Отправил тебе письмо по электронке со своим адресом вышли если не трудно.!
-
Вопрос такой Написал некую прогу(можно считать ее тестовой) работает под UCOS 2.80 пока работал в ОЗУ все работало, как поместил во флешь - повисло.Прошел по шагам получил следующую картину виснит при вызове OSTimeDly((INT16U)ticks); ->OS_TaskIdle;->OS_Sched;->OS_TASK_SW() - это асемблерная ппрограмма после нее выполнения выходит опять на выходит OSTimeDly((INT16U)ticks); и так по кругу.Программа дальше этого не идет. Может кто сталкивался с чем то подобным? стек задач TASK_STK_SIZE 255 файл линкера at91SAM7S128_NoRemap.xcl Стеки -D_CSTACK_SIZE=(300*4) -D_IRQ_STACK_SIZE=(3*8*4) с запасом вроде да и при работе из озу такиеже размеры.
-
Я недавно начал заниматься АРМами и толком то не знаю через что можно через что нельзя отлаживаться Но раз есть интерфейс с внешним миром у кристалла то значит через него можно заглянуть внутрь. Когда-то очень давно сам писал отладчик для 51-х процессоров через последовательный порт типа RОМ монитор. Так вот и подумал что может это предусмотрено.Сейчас работаю через виглер. Вот такая история. Всем спасибо за участие!