- 博客(36)
- 收藏
- 关注
原创 汇编简介&常用语法
因为Cortex-A芯片一上电SP指针还没初始化,C环境还没准备 好,所以肯定不能运行C代码,必须先用汇编语言设置好C环境,比如初始化DDR、设置SP 指针等等,当汇编把C环境设置好了以后才可以运行C代码。
2025-02-12 18:30:10
1083
原创 杂项命令(笔记)
ifconfig :http://t.csdnimg.cn/gT2ARecho :http://t.csdnimg.cn/6DSoOps和top的区别 http://t.csdnimg.cn/f1XWt
2024-08-10 19:42:36
225
原创 基础编译测试——Linux笔记
chmod:可将不可执行变为可执行的 1)文件所有者Owner 2)用户组 (Group)3)其他用户(Other Users)编译方法:gcc +所要编译的文件(然后可以生成一个绿色的可执行文件)gcc 安装命令:sudo apt install gcc。命令 :sudo chmod 777 test.c。file :可查看文件的信息。
2024-08-05 16:39:20
158
原创 Linux笔记(1)
原文链接:https://blog.csdn.net/weixin_44895651/article/details/105289038。如果还存在其他 文件 / 目录 / 命令 ,再按一下 tab 键,系统会提示可能存在的命令。如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c。在敲出 文件 / 目录 / 命令 的前几个字母之后,按下 tab 键。按 上 / 下 光标键可以在曾经使用过的命令之间来回切换。ifconfig 可查找ip地址 子网掩码等信息。
2024-08-05 16:25:24
394
原创 32单片机的启动过程(笔记)
bootloader :1)初始化堆栈 2)初始化中断向量表 3)初始化PC 4)跳转到main.c里的main函数。实时操作系统启动过程 相比于裸机多了一个 entry和 rtthread_startup。裸机:单片机内部引导 具体见手册 ,boot0 与 boot 1。
2024-07-29 10:39:34
288
原创 RTT(笔记)_线程间通信
使用1) 创建 静态&动态 2) 发送函数 3)接收函数 4)删除函数。优点1)开销低,效率高 邮箱每一封邮件只能容纳固定的四Byte内容。3)多个线程能够向同一个邮箱发送邮件和接收邮件。2)一个线程能够从任意一个邮箱接收和发送邮件。2.全局变量太多,代码很难维护,可读性变差,也有可能存在未知的问问题。注意1.多个线程使用同一个全局变量,如果不互斥,那么存在抢占。5.邮箱 ——————一次只能发4Byte。4.信号 1)软中断信号。代码间耦合性过高,不分层。
2024-07-27 21:43:01
201
原创 线程同步(笔记)
1.概念:指多个线程通过特定的机制来控制线程之间的执行顺序,(线程间通过同步建立执行顺序的关系),如果没有同步,线程之间将是无序的。————————可以理解成 规定优先级相同的线程的执行顺序,3.信号量 二值信号量 :(厕所bushi) 计数型信号量 :(停车场) 互斥量:本质上是二值信号量。(保护该代码) 保护方式:(1)暂停中断 (2)禁止调度 (3)互斥特性保护临界区。2.临界区 : 是指在多线程环境中,访问共享资源或共享数据的一段代码或代码块,
2024-07-26 20:45:15
152
原创 RTT(笔记)
rt_thread_yield :调用此函数后,当前线程首先把自己 从它的就绪列表中删除,然后把自己挂到这个优先级队列链表的尾部,然后激活调度器进行线程的上下文切换(如果当前优先级只有这一个线程,则这个线程继续执行,不进行上下文切换行为)rt_schedule :让出CPU但不会重新去重新排队。
2024-07-26 10:21:25
186
原创 C语言Misc(杂项)
小端:高字节存放在高地址 好运算。4.大小端:1)字节序 大端:高字节存放在低地址 容易判断正负。2)大小端判断:跟处理器有关系。可判断大小端(打印一下) union覆盖问题。5.共用体union 各成员共用一个内存空间。
2024-07-25 12:09:07
181
原创 C语言内存分配(笔记)
BSS 是“Block Started by Symbol”的缩写,意为“以符号开始的块。单片机 flash 相当于ROM (掉电不丢失)5.单片机text 相当于code。RAM 就是运行内存。
2024-07-25 11:24:43
406
原创 链表笔记(1)
数组的每个成员对应链表的节点,成员和节点的数据类型可以是标准的 C 类型或者是 用户自定义的结构体。数组有起始地址和结束地址,而链表是一个圈,没有头和尾之分, 但是为了方便节点的插入和删除操作会人为的规定一个根节点。输出第一个节点的数据域,输出完毕后,让指针保存后一个节点的地址,输出移动地址对应的节点的数据域,输出完毕后,指针继续后移 以此类推,直到节点的指针域为NULL。创建一个节点->创建第二个节点,将其放在第一个节点的后面(第一的节点的指针域保存第二个节点的地址),以此类推。
2024-07-24 00:15:00
306
原创 网络相关知识
8. DNS:有了DNS就可以避免用IP地址了 类似于网站名到IP地址的协议。7.ping指令:1)ping设备 2)ping网址 3) ping动态IP。4.地址形式IPV4 IPV6。1. 动态IP 分配 : DHCP协议。9.TCP :三次握手 四次挥手。5.MAC地址 :网卡的地址。3.网段:IP地址的前几个数。11.TCP与UDP的区别。2.网关:与子网掩码有关。
2024-07-11 23:21:35
190
原创 1.1SPI笔记
6.4种工作模式 : CPOL 0(1):总线空闲状态时钟低(高)电平 空闲状态就是指头和尾。CPHA 0 (1):时钟第一(2)个沿对数据采集。5. 关于CS 主从:一主一从 一主多从 不能多主 IIC可以多主多从。1.常规的四线 : SCLK CS MOSI MISO。4.速率 MHZ 比 IIC快很多。7.QSPI 四线SPI。
2024-07-11 22:58:35
152
原创 串口阻塞方式收发数据(笔记二)
改串口状态为忙,因为后面的操作要修改寄存器。初始化硬件 跳转发现是弱声明 它其实放在uart.c中了。跳转定义 下面这些是为寄存器赋值的,跳转到第二个结构体 波特率字长停止位校验位 等等。意思就是把之前初始化的值都真正意义上的配好。第一个嵌套了一个结构体 跳转到定义。判断是否初始化,如果是就走进来。后面就对应串口的寄存器。
2024-06-07 16:33:49
291
原创 串口阻塞方式收发数据(STM32)
如果使能DMA 数据就不会经过CPU,先到DMA再到SRAM(且速度很快)DMA通道一 二 三 四 和EXTI类似,都是写死的不能变。数组放在sram中 外设到CPU到SRAM(或别的)阻塞的意思可以类比为轮询,一直查有没有来数据。中断方式:中断到中断向量表到callback。DMA是一个外设(搬运工)给CPU打下手。USART 为同步异步。
2024-06-06 16:49:39
447
原创 STM32 外部中断底层代码分析
我们再跳转到void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)中。我们看这个寄存器,不难理解也就是说哪个位写1哪个位就清楚挂起位,传参为PIN脚,不同的PIN脚清除不同的位。中断在GPIO初始化中,我们先跳转到触发模式的函数里。计算config并写入。
2024-06-06 16:09:26
1226
原创 DHT11使用
画圈的俩个函数不能换位!否则多移一次,数据就错啦。可以利用以下两个函数防止死机和检测是响应。最后用这个函数赖输出到OLED屏幕上。读取数据存入数组里,并用软件校验。
2024-05-27 23:23:00
602
原创 IIC 理论,简介版
读写操作1.发送从机地址(制定目的地)(发送的是地址address)高7位是地址后一位是读写位 1为读 0为写 从机:应答(收到) 即握手。11.SDA电平变换规则 SCL为高时 SDA数据线上数据必须保持稳定 SCL为低时 SDA数据线上的高低电平状态才允许变化。2.应答信号 发送端SCL在第九个时钟信号把控制权交给从机 从机如果按照主机的要求响应,说明应答有效。9.开始信号:SCL为高电平时 SDA由高到低跳变表示数据传输的开始。10.停止信号:SCL为高电平时 SDA由低到高的跳变。
2024-05-25 16:05:43
457
原创 ESP8266 使用步骤
5):ESP8266作为Client连接到服务器 AT+CIPSTART=”TCP”, ” ”1)可以建立客户端或服务端(要关闭WINDOWS防火墙)7:AT指令:具体可看官网(安信可)指令集与使用实例。4): PC端使用网络调试工具,建立一个TCP服务器。1):配置WIFI模式 AT+CWMDODE=3。3):查询ESP8266地址 AT+CIFSR。2):连接路由器 AT+CWJAP=” ”3:AP模式即8266自己建立一个网络。7:波特率:115200 bis/s。1:小型32位型MCU(超低功耗)
2024-05-21 22:17:58
972
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅