自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 RTOS-任务切换

100行代码实现了RTOS的任务切换的最小功能集

2024-01-28 18:15:59 962

原创 RTOS-进出中断栈操作说明

在Cortex-M3的内核中,R13为堆栈指针sp,其可以取两个值,一个为MSP,为主堆栈指针,另一个为PSP,为进程堆栈指针。MSP在上电后默认使用,即在main函数中,默认会一直使用,以及在进入中断后,要求必须使用MSP,而在RTOS的任务运行过程中,一般使用PSP,这样可以防止任务堆栈指针出错后,不影响中断服务程序的运行,是一种保护机制。执行上一节里的代码,可以跟踪到PSP始终为0,R13的值一直和MSP的值一致,不管是在main函数中,还是在中断函数中,如下所示。

2024-01-22 21:48:31 757

原创 RTOS-PendSV中断使用

在主流的rtos中,都是使用了pendsv来进行任务的切换,在Cortex-M3权威指南中具体介绍了任务切换的几种历史的方法,之前有用systick中断来做的,但是由于和其余的中断的优先级的冲突,主要是在中断的过程中,不能进行任务的切换,否则会影响堆栈的切换。按照之前STM32的专栏里介绍的新建汇编文件的方式,新建一个汇编文件,然后参照上边的寄存器地址,定义三个函数,分别为pendsv的中断处理函数,这个函数后续需要做任务切换,暂时只做一些寄存器的操作,用于观察现象。分别如下,在135页有中断触发寄存器。

2024-01-21 16:55:14 413

原创 stm32的printf使用

在刚开始学习C语言的时候,都使用过printf函数,支持的格式比较齐全,相打印什么样的信息都比较好实现。在使用STM32的过程中,也可以使用printf函数,printf函数是C语言stdio的库里定义好的函数,或者在stm32中,推荐勾选use microlib库,printf函数调用了fputc函数,这个函数也在库里被“弱定义”了,弱定义指的是如果有在其他地方重新定义,则使用重新定义的函数,若没有找到,则使用之前“弱定义”好的函数。在startup.s文件中,就弱定义了很多函数,都可以重新被定义,如下。

2024-01-15 22:41:38 1339

原创 STM32代码中变量定义后的放置的位置

写一个如下所示的代码,可以查看各种类型的变量的存储位置。还需要看一下map文件,先确认一下各个区域的范围。可以看出主要分为以下4个区域。

2024-01-14 22:38:39 401 1

原创 STM32汇编程序闪烁LED灯1

原因是在reset handler中,首先调到了__main函数中,这个函数不是main函数,而是在C库中(默认不带micro lib编译的时候),这个函数主要的作用就是内存初始化,包括将初始化过的可读写的全局变量和静态变量拷贝到内存对应的区域,初始化那些初始化为0的静态变量和全局变量,然后将栈顶地址和堆地址设置好,之后跳转到main函数,在这个过程中可能会碰到一个BKPT 0xAB的地方,是内核调试的一个相关指令,导致程序出问题,编译为microlib就可以避免这个问题。

2024-01-11 21:10:58 432

原创 STM32新建汇编工程2

然后直接新建工程,新建完工程后,再去之前的工程中,只将startup_stm32f10x_hd.s文件拷贝过来,放置到新建的工程目录下,然后在界面中加入已经存在的文件,然后新建一个main.s文件,将上篇文章中的代码拷贝过来,如下图。上一篇文章里写了新建工程的过程中,使用了keil提供的文件,也可以不使用,自己手动拷贝,这样工程会更简单一些,只需要拷贝启动文件一个即可,如下界面里不做选择。由于没有系统时钟配置部分的c代码,需要修改启动代码中调用了系统时钟初始化的部分,注释掉即可,如下图。

2024-01-11 20:53:13 324

原创 STM32新建汇编工程1

之前做汇编比较少,再想深入学习rtos的时候,需要先熟悉一下汇编,方便后续在rtos中写一部分任务切换的代码,也可以深入了解单片机的底层运行原理。

2024-01-11 20:45:05 366

原创 关闭Ubuntu20.04自动休眠

关闭ubuntu休眠

2022-10-31 14:29:00 170

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除