- 博客(16)
- 收藏
- 关注
原创 单片机的启动流程——以STM32为例
单片机的启动流程——以STM32为例一、简介 本文以STM32为例,介绍单片机的启动流程。二、BOOT启动方式 要知道单片机的启动流程,首先要找到对应的芯片手册,以STM32F207为例,芯片手册2.4章中描述了单片机根据不同BOOT引脚电平初始化的方式。 此芯片支持FLASH,系统内存,内部SRAM三种启动方式。阅读单板电路图,可知默认BOOT0引脚都是低电平,对应从FLASH启动的方式。 进而查看内存映射,可知FLASH对应的地址为0x8000000。三、STM3
2022-02-09 10:21:28
5239
2
原创 lwIP源码解析---httpd(二)
lwIP源码解析—httpd(二)一、简介 1.1 lwip版本 lwip 2.1.2 1.2 代码范围 在lwip中包含了http服务端的实现,文件路径: lwip-2.1.2\src\apps\http\httpd.c 在源码案例中,只实现了GET方法的例子,POST方法还需要自己增加例子。文件代码两千七百行左右。二、源码分析 2.1 初始化函数 2.2 接收函数 2.3 发送函数...
2021-10-28 14:53:57
2454
2
原创 lwIp源码解析--DHCPv4
lwip源码解析–DHCPv4一、简介 1.1 lwip版本 lwip 2.1.2 1.2 代码范围 在lwip中包含了DHCPv4客户端的实现,文件路径: lwip-2.1.2\src\core\ipv4\dhcp.c lwip-2.1.2\src\include\lwip\dhcp.h 文件代码两千行左右,阅读难度不大。二、DHCPv4流程和状态机三、DHCPv4源码 3.1 启动客户端err_t dhcp_s.
2021-10-13 18:21:10
2063
原创 STM32驱动开发(二)--USB Device RNDIS虚拟网卡(usb hound抓包完整数据流分析)
usb hound抓包完整数据流分析
2021-09-06 00:31:49
2648
2
原创 STM32驱动开发(二)--USB Device RNDIS虚拟网卡(USB2.0 基础概念讲解)
本文基于github上的stm32 Rndis实例结合协议讲解stm32中USB虚拟网卡驱动的实现。达到外部主机(手机)通过USB接口访问物联网设备网页的功能。
2021-08-22 22:47:49
7692
11
原创 freeRtos源码解析(二)–任务调度
freeRtos源码解析(二)–任务调度一、启动任务调度器 启动任务调度器之后,CPU正式进入任务模式调度各任务(CPU在中断模式和任务模式之间不断轮转)。 freeRtos任务调度依赖于内核的三个中断,中断服务函数已由freeRtos开发人员用汇编根据不同芯片实现了,定义在port.c中,这三个函数分别是:/* * Exception handlers. */void xPortPendSVHandler( void ) __attribute__ (( naked ));void x
2021-08-14 21:47:36
694
原创 freeRtos源码解析(一)--RTOS概念以及任务创建
freeRtos源码解析(一)–任务创建与任务调度一、简介1.1 代码来源及版本代码来源于STM32CubeIDE工具一键生成功能,对应freeRtos版本为 FreeRTOS Kernel V10.2.1。对应MCU型号为STM32MP157D cortex-M4.生成的中间层代码以及源码目录如下:1.2 学习参考学习参考:[野火®]《FreeRTOS 内核实现与应用开发实战—基于STM32》...
2021-08-10 21:27:30
2032
原创 goahead源码解析(六)结合openssl实现https协议
http协议是不安全的,因此还需要结合openssl实现安全的https协议。
2019-08-24 21:33:37
1525
1
原创 goahead源码解析(五) 实现文件导入和导出
对于一个完整的WEB服务器来说,应该支持WEB文件导入功能,例如导入业务的配置文件,导入软件升级包进行升级等等。导出功能一般是导出用户配置文件,导出log日志等。导入导出对于HTTP请求来说依然是POST和GET。...
2019-08-23 21:50:07
2160
3
原创 goahead源码解析(四) 用户登陆与权限认证
前面三篇文章讲解了服务器的主框架和基本I/O流程,这篇文章讲一下如何进行多用户管理,实现多用户登陆登出等功能。
2019-08-23 21:45:48
5101
3
原创 goahead源码解析(三) 响应HTTP请求
一、如何响应HTTP请求websPump中若前面两步解析请求行请求头成功,wp->state置为READY时,在for循环中调用websRunRequest响应请求。 此时,websRunRequest中将wp->state置为RUNNING,之后调用route对应的service回调函数,也就是websDefineHandler中定义的各种handler。二、响应HTTP请...
2019-08-22 11:18:54
3736
原创 goahead源码解析(一) 从主函数到I/O事件循环
goahead是一个成熟的嵌入式WEB服务器,在未来物联网行业中,相信可以发挥更大的作用。我们刚买路由器的时候,通常需要连接网线登陆一个页面配置路由器IP,WIFI密码,这个就是嵌入式WEB服务器的一个应用。
2019-08-20 22:53:34
3704
3
原创 goahead源码解析(二) 读取HTTP请求
浏览器与服务器建立好连接之后,会调用readEvent接口来读取从浏览器来的请求。HTTP请求的结束符是"\r\n\r\n",服务器一直调用readEvent请求,直到接受到了HTTP请求结束符为止(内容长度不超过请求最大长度2048字节)。 The webs read handler. This is the primary read event loop. It uses a st...
2019-08-20 22:39:32
2960
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人