与C语言中的函数malloc以及链表有关的一个小问题

与C语言中的函数malloc以及链表有关的一个小问题,第1张

1、struct StudentCreate():定义函数Create,函数返回值为指向结构体Student类型的指针。

2、定义结构体:struct Student{……};定义指向结构体的指针:struct Student p;定义返回值为指向结构体指针的函数:struct Student Create(){……}

3、malloc函数返回值为void ,pEnd和pEnw的类型为 struct Strudent ,类型不一致,需要对赋值运算符右边的表达式值进行强制类型转换。强制类型转换的方法是(类型名),所以是(struct Student )。

int fputc(int ch, FILE f)

{

OS_ERR err;

CPU_TS ts;

Dbg_printf_time[Dbg_printf_cnt++] = STK_VAL_REG; //进入函数前读取systick的寄存器

Dbg_printf_inter[Dbg_printf_cnt] = Dbg_printf_time[Dbg_printf_cnt-2] - Dbg_printf_time[Dbg_printf_cnt-1];//用刚读取的寄存器值减去上一次退出该函数的寄存器值,从而得到两次进入该函数之间的时间

while (HAL_UART_Transmit_IT(&huart, (uint8_t )&ch, 1) != HAL_OK)

{

OSTaskSemPend(10, OS_OPT_PEND_BLOCKING, &ts, &err);

//check “err”

}

Dbg_printf_time[Dbg_printf_cnt++] = STK_VAL_REG; //退出函数前读取systick的寄存器值

Dbg_printf_inter[Dbg_printf_cnt] = Dbg_printf_time[Dbg_printf_cnt-2] - Dbg_printf_time[Dbg_printf_cnt-1];//用刚读取的寄存器值减去进入该函数的寄存器值,从而得到两次进入该函数之间的时间

if (Dbg_printf_cnt > 90)

{

Dbg_printf_cnt = 1;

}

return ch;

}

PendSV指可悬起系统调用

一般用在上了 *** 作系统的软件开发中

*** 作系统通常不让用户程序直接访问硬件,而是通过提供一些系统服务函数,让用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它们来间接访问硬件。因此,当用户程序想要控制特定的硬件时,它就要产生一个 SVC异常,然后 *** 作系统提供的 SVC异常服务例程得到执行,它再调用相关的 *** 作系统函数,后者完成用户程序请求的服务。

stm32中GPIO口的最大输出速度如何理解

1,是这样的,2M、10M和50M是指GPIO口的采样频率。。不知这样理解对不对,我就是这样做的。

2,我通过PB6采集80KBPS/S的方波,通过中断计采集,完全胜任。

同时使用多个内核对象

uC/OS-III 只允许同时等待多个信号量和消息队列,不能同时等待多个事件标志组或mutex。

这里写描述

任务接收到一个信号量或消息,就会进入就绪。任务通过调用OSPendMulti()等待多个对象。

/1定义OS_PEND_DATA数组/

OS_OBJ_QTY index;

OS_PEND_DATA pend_multi_tbl[CORE_OBJ_NUM];//定义数组

/2放入消息队列或者信号量/

pend_multi_tbl[0]PendObjPtr=(OS_PEND_OBJ)&Test_Sem1;

pend_multi_tbl[1]PendObjPtr=(OS_PEND_OBJ)&Test_Sem2;

pend_multi_tbl[2]PendObjPtr=(OS_PEND_OBJ)&Test_Q;

/3等待多个内核,返回准备好,停止或者删除的内核对象数量/

index=OSPendMulti((OS_PEND_DATA )pend_multi_tbl,//内核对象数组

(OS_OBJ_QTY)CORE_OBJ_NUM, //内核数量

(OS_TICK)0,

(OS_OPT)OS_OPT_PEND_BLOCKING,

(OS_ERR)&err);

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13491829.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存