原创 *內存分配

內存分配 #define configTOTAL_HEAP_SIZE ((size_t)(201024)) ucHeap[configTOTAL_HEAP_SIZE] xPortGetFreeHeapSize()//內存堆

原创 任務通知

任務通知 configUSE_TASK_NOTIFICATIONS=1//開啓 ulNotifiedValue 任務通知只有一個任務 接收任務會進入阻塞,發送任務不會因發送失敗而進入阻塞 發送任務通知 xTaskNotify()/

原创 freertos任務

任務task control block,tcb分配給每個任務** typedef struct tskTaskControlBlock { volatile StackType_t *pxTopOfStack//任務堆棧的棧頂

原创 freertos列表

typedef struct xLIST { listFIRST_LIST_INTEGRITY_CHECK_VALUE//檢查 UBaseType_t uxNumberOfItems;//item數量 ListItem_t * c

原创 freertos任務調度

開啓任務調度* idle任務和timer任務 關閉中斷//在svc,打開中斷 下一個任務的解除阻塞時間xNextTaskUnblockTime 調度標誌 xTickCount//tick計數 調用xPortStartSchedul

原创 struct內嵌union

typedef struct { __IO uint16_t MS : 2; uint16_t RESERVED2 : 2;

原创 mdk編譯連接

formelf --text -v/-v scatter_loading分散加載 Stack_Size EQU 0x00000400 //1024bytes Heap_Size EQU 0x

原创 linux命令

crontab -l //列出crontab crontab -e //簡介crontab dmesg//顯示來自kernel buffer的系統信息,從最後的系統開啓 free//顯示內存信息 -b:字節 -m:mege -t:

原创 marlin--運動參數

運動的相關參數 #define BLOCK_BUFFER_SIZE 16 static block_t block_buffer[BLOCK_BUFFER_SIZE];

原创 freertos任務函數

爲了避免延遲中斷函數處理的發生,只有在檢測到沒有irq處理函數被執行,os纔會任務切換。 如果中斷源的頻率與systic中斷接近時,會造成很長的延時對於任務切換 pendsv通過延遲上下文切換請求,知道所有的中斷完成,爲了達到此目

原创 c語言宏

#define _CAT(a, ...) a ## __VA_ARGS__ #define SWITCH_ENABLED_ 1 #define twig #define ENABLED(b) _CAT(SWITCH_ENABL

原创 marlin-lcd屏

U8G_CLASS u8g(U8G_PARAM); //根據u8g的構造函數初始化 #define U8G_CLASS U8GLIB_ST7920_128X64_RRD #define U8G_PARAM LCD_PINS_D4,

原创 marlin--gcode解析

#define MAX_CMD_SIZE 96 #define BUFSIZE 4 gcode存在此處,存4條gcode char command_queue[BUFSIZE][MAX_CMD_SIZE];

原创 linux命令(三)

dpkg -i dpkg -l //列出所有的包 dpkg -L//列出指定包安裝的文件 apt-get update:同步源 upgrade:安裝最新的包 remove:移除包 apt list --upgradeable a

原创 12864屏幕&&st7920

DDRAM(display data ram) CGRAM(character generation RAM) CGROM(字庫)