######################################################################################### # Vim'de ultisnips kullanirken freertos # # fonksiyonlari icin hazirladigim snippets ornekleri # # # # Dokumantasyon: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt # ######################################################################################### snippet inc "#include " b #include <$0.h> endsnippet snippet vtdel "vTaskDelete" b vTaskDelete(${1:NULL}); endsnippet snippet vtdly "vTaskDelay" b vTaskDelay(${1:1000}); endsnippet snippet vtdlyu "vTaskDelayUntil" b vTaskDelayUntil(${1:pxPreviousTime},(TickType_t ) ${2:1000}); endsnippet snippet itask "Include freertos task" #include <freertos/task.h> endsnippet snippet iqueue "Include freertos queue" #include <freertos/queue.h> endsnippet snippet isemphr "Include freertos semaphore" #include <freertos/semphr.h> endsnippet snippet thand "TaskHandle_t" TaskHandle_t ${1:xTask} = NULL; endsnippet snippet qhand "QueueHandle_t" QueueHandle_t ${1:xQueue} = NULL; endsnippet snippet st "StaticTask_t" b StaticTask_t ${1:pxStaticTask}; endsnippet snippet ss "StaticSemaphore_t" b StaticSemaphore_t ${1:pxStaticSemaphore}; endsnippet snippet shand "SemaphoreHandle_t" b SemaphoreHandle_t ${1:xSemaphore} = NULL; endsnippet snippet xscb "xSemaphoreCreateBinary" b ${1:xSemaphore} = xSemaphoreCreateBinary(); endsnippet snippet xscbs "xSemaphoreCreateBinaryStatic" b xSemaphoreCreateBinaryStatic(${1:pxStaticSemaphore}); endsnippet snippet xst "xSemaphoreTake" b xSemaphoreTake(${1:xSemaphore},${2:( TickType_t ) 1000}); endsnippet snippet xscrm "xSemaphoreCreateRecursiveMutex" b ${1:xMutex} = xSemaphoreCreateRecursiveMutex(); endsnippet snippet xstr "xSemaphoreTakeRecursive" b xSemaphoreTakeRecursive(${1:xSemaphore}, ${2:portMAX_DELAY}); endsnippet snippet xsgr "xSemaphoreGiveRecursive" b xSemaphoreGiveRecursive( ${1:xSemaphore} ); endsnippet snippet xsg "xSemaphoreGive" b xSemaphoreGive( ${1:xMutex} ); endsnippet snippet xqc "xQueueCreate" b ${1:xQueue} = xQueueCreate(${2:1},${3:sizeof(buf)}); endsnippet snippet xqs "xQueueSend" b xQueueSend(${1:xQueue},(void *) &${2:buffer},portMAX_DELAY); endsnippet snippet xqr "xQueueReceive" b xQueueReceive(${1:xQueue},(void *) &${2:buffer}, portMAX_DELAY); endsnippet snippet vqd "vQueueDelete" b vQueueDelete(${1:xQueue}); endsnippet snippet xtng "xTaskNotifyGive" b xTaskNotifyGive(${1:taskHandle}); endsnippet snippet utnt "ulTaskNotifyTake" b ulTaskNotifyTake(${1:pdTRUE}, ${2:portMAX_DELAY}); endsnippet snippet xtn "xTaskNotify" b xTaskNotify(${1:taskHandle},${2:0},${3:eIncrement}); endsnippet snippet xtnw "xTaskNotifyWait" b xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait ); endsnippet global !p def taskName(val): return ("vMyTask%s" %val) endglobal snippet xtc "xTaskCreate" b xTaskCreate( ${1:vMyTask}, ${2:"vMyTask"}, ${3:1000}, ${4:NULL}, ${5:10}, ${6:NULL}); endsnippet snippet "xtc (\d+)" "xTaskCreate" r xTaskCreate( ${1:`!p snip.rv=taskName(str(match.group(1)))`}, ${2:"`!p snip.rv=taskName(str(match.group(1)))`"}, ${3:1000}, ${4:NULL}, ${5:10}, ${6:NULL}); endsnippet snippet xtcp "xTaskCreatePinnedToCore" b xTaskCreatePinnedToCore( ${1:vMyTask}, ${2:"vMyTask"}, ${3:1000}, ${4:NULL}, ${5:10}, ${6:NULL}, ${7:0}); endsnippet snippet "xtcp (\d+)" "xTaskCreatePinnedToCore" r xTaskCreatePinnedToCore( ${1:`!p snip.rv=taskName(str(match.group(1)))`}, ${2:"`!p snip.rv=taskName(str(match.group(1)))`"}, ${3:1000}, ${4:NULL}, ${5:10}, ${6:NULL}, ${7:0}); endsnippet snippet xtcs "xTaskCreateStatic" b xTaskCreateStatic( ${1:vMyTask}, ${2:"vMyTask"}, ${3:1000}, ${4:NULL}, ${5:10}, ${7:puxStackBuffer}, &${8:pxTaskBuffer}); endsnippet snippet "xtcs (\d+)" "xTaskCreateStatic" r xTaskCreateStatic( ${1:`!p snip.rv=taskName(str(match.group(1)))`}, ${2:"`!p snip.rv=taskName(str(match.group(1)))`"}, ${3:1000}, ${4:NULL}, ${5:10}, ${7:puxStackBuffer}, &${8:pxTaskBuffer}); endsnippet snippet xtcsp "xTaskCreateStaticPinnedToCore" b xTaskCreateStaticPinnedToCore( ${1:vMyTask}, ${2:"vMyTask"}, ${3:1000}, ${4:NULL}, ${5:10}, ${7:puxStackBuffer}, &${8:pxTaskBuffer}, ${9:0}); endsnippet snippet "xtcsp (\d+)" "xTaskCreateStaticPinnedToCore" r xTaskCreateStaticPinnedToCore( ${1:`!p snip.rv=taskName(str(match.group(1)))`}, ${2:"`!p snip.rv=taskName(str(match.group(1)))`"}, ${3:1000}, ${4:NULL}, ${5:10}, ${7:puxStackBuffer}, &${8:pxTaskBuffer}, ${9:0}); endsnippet snippet task "Task function" void ${1:vMyTask}(void * parameters) { $0 } endsnippet snippet "task (\d+)" "task value" r void ${1:`!p snip.rv=taskName(str(match.group(1)))`}(void * parameters) { $0 } endsnippet