摘要:
1.Cortex-M中断系统 以stm32中断系统为例,有以下几个关键点: 中断向量表 NVIC(内嵌向量中断控制器) 中断使能 中断服务函数 1.1中断向量表 中断向量表是一个表,这个表里面存放的是中断向量。中断服务程序的入口地址或存放中断服务程序的首地址称为中断向量,因此中断向量表示一系列中断服 阅读全文
摘要:
ATF TF(Trusted Firmware)是ARM在Armv8引入的安全解决方案,为安全提供了整体解决方案。它包括启动和运行过程中的特权级划分,对Armv7中的TrustZone(TZ)进行了提高,补充了启动过程信任链的传导,细化了运行过程的特权级区间。 TF实际有两种Profile,对ARM 阅读全文
摘要:
GNU 汇编语法 在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一上电 SP 指针还没初始化,C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境,比如初始化 DDR、设置 SP指针等等,当汇编把 C 环境设置好了以后才 阅读全文
摘要:
语法规则 目标 ... : 依赖 ... 命令1 命令2 ... Makefile的核心规则,类似于一位厨神做菜,目标就是做好一道菜,那么所谓的依赖就是各种食材,各种厨具等等,然后需要厨师好的技术方法类似于命令,才能作出一道好菜。 同时这些依赖也有可能此时并不存在,需要现场制作,或者是由其他厨师做好 阅读全文
摘要:
踩坑 在此项目中遇到的一些比较有意义的问题 大文件传输 先看下游双书上发送逻辑这块的代码,发送数据只调用了writev函数,并对其返回值是否异常做了处理。 bool http_conn::write() { int temp = 0; int byte_have_send = 0; int byte 阅读全文
摘要:
整体概述 本项目中,使用数据库连接池实现服务器访问数据库的功能,使用POST请求完成注册和登录的校验工作。 本文内容 本篇将介绍同步实现注册登录功能,具体的涉及到流程图,载入数据库表,提取用户名和密码,注册登录流程与页面跳转的的代码实现。 流程图 具体的,描述了GET和POST请求下的页面跳转流程。 阅读全文
摘要:
基础知识 什么是数据库连接池? 池是一组资源的集合,这组资源在服务器启动之初就被完全创建好并初始化。通俗来说,池是资源的容器,本质上是对资源的复用。 顾名思义,连接池中的资源为一组数据库连接,由程序动态地对池中的连接进行使用,释放。 当系统开始处理客户请求的时候,如果它需要相关的资源,可以直接从池中 阅读全文
摘要:
日志系统分为两部分,其一是单例模式与阻塞队列的定义,其二是日志类的定义与使用。 本篇将介绍日志类的定义与使用,具体的涉及到基础API,流程图与日志类定义,功能实现。 基础API ,描述fputs,可变参数宏__VA_ARGS__,fflush 流程图与日志类定义 ,描述日志系统整体运行流程,介绍日志 阅读全文
摘要:
基础概念 日志,由服务器自动创建,并记录运行状态,错误信息,访问数据的文件 同步日志,日志写入函数与工作线程串行执行,由于涉及到I/O操作,当单条日志比较大的时候,同步模式会阻塞整个处理流程,服务器所能处理的并发能力将有所下降,尤其是在峰值的时候,写日志可能成为系统的瓶颈。 生产者-消费者模型 ,并 阅读全文
摘要:
定时器处理非活动连接模块,主要分为两部分,其一为定时方法与信号通知流程,其二为定时器及其容器设计、定时任务的处理。 本篇对第二部分进行介绍,具体的涉及到定时器设计、容器设计、定时任务处理函数和使用定时器。 定时器设计,将连接资源和定时事件等封装起来,具体包括连接资源、超时时间和回调函数,这里的回调函 阅读全文