RT-threat 嵌入式程序设计
红红火火恍恍惚惚
成信吴彦祖
这个作者很懒,什么都没留下…
展开
-
Rt-Thread 线程栈栈顶指针的生长方向:
阅读RT-Thread源码的时候,注意到一个细节,程序内存栈的生长方向应该是向下的,那么程序内存栈的栈顶指针应该是栈最低地址。 然而在CPU接口的源码中,栈顶指针的地址是栈地址 + 栈大小, 思考了一会儿才明白,程序内存栈的栈空间确实是从高地址向下生长,但是线程栈并不是程序内存栈,而是程序内存栈中的一个区间,该区间仍然遵循自下而上的栈生长方式...原创 2022-01-29 12:34:22 · 808 阅读 · 0 评论 -
STM32使用DMA不定长接受数据:
前言:STM32的DMA可以绕开cpu进行数据传输,串口的DMA使得cpu的资源得到部分释放。(使用DMA之前做好flash的初始化,裸机程序一般都是库函数初始化好的) 1. cubemx配置好串口和DMA2.main函数初始化串口DMA(因为使用rtthread操作系统,所以main.c和main函数都是自己写的)3. 串口空闲中断初始化4.串口空闲中断服务函数需要自己编写,自己添加(编写最好编写在uart.c)5.编...原创 2021-10-09 20:50:36 · 374 阅读 · 0 评论 -
stm32使用hal库配置串口接收中断
emmmm记录一下遇到的问题,此函数使能串口接收中断,并且进入中断后需要重新设置,否则只能进入一次。第三个参数是接受到多少数据后进入中断,也就是接收缓冲区。这个参数最好设置为1,在中断中一个个处理接受的的每个字节。...原创 2021-10-06 13:56:54 · 2323 阅读 · 0 评论 -
rtthread中rt_kprintf串口重定义:
用 rtthread - nano 的时候配置 rt_printf,可以通过查看函数,发现这个函数里有两个条件宏,很明显我们需要执行的是 rt_hw_console_output(rt_log_buf); 打开rt_hw_console_output(rt_log_buf); 我们发现里面是空的,需要自己添加程序来达到rt_printf 输出,可以利用 for 循环和 hal 库的HAL_UART_Transmit() 函数来实现,但是当我们写好之后发现貌似完全不起作...原创 2021-09-25 13:33:30 · 1148 阅读 · 0 评论 -
windows 命令行导出管理员账户
以管理员运行cmd,然后输入net user administrator /active:yes原创 2021-09-23 13:53:29 · 357 阅读 · 0 评论 -
RT-thread RTOS中的线程执行时间;
rtthread中线程的执行时间分为两个部分,一个是线程的周期,一个是从开始到结束的时间。 例如一个线程A的线程周期10ms,从开始到结束的时间为1ms: 线程周期:RTOS是一个对实时性要求非常高的操作系统类型,所以采用抢占式方式进行线程调度,对于实时性有一个指标。线程A要求响应时间不超过10ms,那么10ms就是线程的周期。 从开始到结束的时间:线程运行需要的时间是一个很重要的指标,因为它将影响其他线程的执行,假如有一个线程B的优先级...原创 2021-09-21 14:12:03 · 1814 阅读 · 0 评论 -
前后台程序设计:
int flag1 = 0;int flag2 = 0;int flag3 = 0;int main(void){ /* 硬件相关初始化 */ HardWareInit(); /* 无限循环 */ for (;;) { if (flag1) { /* 处理事情 1 */ DoSomething1(); } if (flag2) {.原创 2021-06-26 19:54:13 · 535 阅读 · 0 评论