自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 U.2接口定义

2022-03-19 14:23:06 5953

原创 armcc和gcc编译存储分布

Code:即代码域,它指的是编译器生成的机器指令。RO_data:ReadOnly data,即只读数据域,它指程序中用到的只读数据,全局变量,例如C语言中const关键字定义的全局变量就是典型的RO-data。RW_data:ReadWrite data,即可读写数据域,它指初始化为“非0值”的可读写数据,程序刚运行时,这些数据具有非0的初始值,且运行的时候它们会常驻在RAM区,因而应用程序可以修改其内容。例如全局变量或者静态变量,且定义时赋予“非0值”给该变量进行初始化。ZI_data:ZeroI

2022-01-21 16:21:27 1181

原创 AMBA Specification (Rev 2.0)简介

一、配置时钟时,经常看到APB、AHB,一直也没仔细关注过,抽空先粗略了解一下。二、AMBA Specification (Rev 2.0)定义了三个总线,分别是AHB、ASB和APB。1、AHB:Advanced High-performance Bus。AHB is a new generation of AMBA bus which is intended to address the requirements of high-performance synthesizable designs.

2022-01-21 16:18:49 1154

转载 Linux设备树的传递以及kernel中对设备树的解析

1、概述当U-Boot将设备树加载到内存指定位置后,ARM内核的SoC以通用寄存器r2来传递dtb在内存中的地址。kernel获取到该地址后对dtb文件做进一步的处理。2、设备树的传递当使用bootm加载kernel镜像时(bootz是对bootm的一种封装以及功能扩展,实质一样)。U-Boot跳转到kernel的入口函数是boot_jump_linux,这个函数的C文件在arch/arm/lib下,说明设备树的传递的方式是与SoC架构相关的。不同的SoC在bring-up时,这个函数格外重要,这是U

2022-01-19 11:21:44 920

原创 TCP/IP协议栈之LwIP-pbuf

一、介绍lwIP - A Lightweight TCP/IP stackThe focus of the lwIP TCP/IP implementation is to reduce resource usage while still having a full scale TCP. This makes lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around

2022-01-04 23:37:34 4152 1

原创 TCP/IP详解之NAT

一、原理NAT的工作原理就是重写重写通过路由器的数据包的识别信息。这种情况常发生在数据传输的两个方向上。在这种最基本的形式中,NAT需要重写往一个方向传输的数据包的源IP地址,重写往另一个方向传输的数据包的目的IP地址。这允许传出的数据包的源IP地址变为NAT路由器面向Internet的网络接口地址,而不是原始主机的接口地址。因此,在互联网上的主机看来,数据包是来自于具备全局路由IP的NAT路由器,而不是位于NAT内部的私有地址的主机。...

2022-01-03 20:17:41 2283 3

原创 网络基础名词详解

一、背景前面在做NAT的时候,由于网关设置的错误,导致项目进度延误半个月,整天抓耳挠腮也没通,测试也是糊里糊涂的进行,一度想放弃。最后在同事的提醒下,重新改了网关的配置,NAT通了…二、网络名词解释(以下内容出自《TCP/IP详解 卷1:协议》)1、分类寻址:当最初定义Internet地址结构时,每个单播IP地址都有一个网络部分,用识别接口使用的IP地址在哪个网络中可被发现;以及一个主机地址,用于识别由网络部分给出的网络中的特定主机。因此,地址中的一些连续位称为网络号,其余为称为主机号。当时,大多数主

2022-01-03 17:22:03 1236

原创 gd32+gcc+rtthread+lwip+ppp+nat开发总结

1、背景自研DTU项目,替代别家产品,降低装置成本。技术路线上,采用国产gd32f450芯片和rtthread实时操作系统,运行轻量化tcp/ip协议栈lwip,通过ppp协议拨号上网,分别通过串口和网口透传数据,网口使用nat。2、总结▶串口6中断模式接收数据导致芯片崩溃当时的现象是这样的,不开中断的情况下,串口6收发数据正常;如果打开中断模式,发送数据没有问题,一旦收到任何数据,芯片立马跑飞挂掉。一开始怀疑的是中断处理函数有问题,然而怎么修改也不见有效,也看了启动文件,前面几眼也没发现有什么问题

2021-12-31 10:10:08 2159 4

原创 linux内核互斥简介

内核互斥技术,从是否睡眠角度分为两类:一、可能睡眠:1、信号量(读写信号量);2、互斥锁(实时互斥锁);申请这些锁的时候,如果锁被其他进程占有,进程将会睡眠,进程切换代价很高,适合临界区执行时间比较长的情况;二、不会睡眠:1、原子变量;2、自旋锁(读写自旋锁:允许多个读者同时进入临界区、顺序锁:读者不会阻塞写者);申请这些锁的时候,如果锁被其他进程占有,进程自旋(忙)等待;三、其他互斥1、禁止内核抢占,防止被当前处理器上的其他进程抢占;2、禁止软中断,防止被当前处理器上的软中断抢占;

2021-12-26 16:17:27 612

原创 gcc链接脚本和启动文件详解

C代码生成可执行程序分为:预编译、编译、汇编、链接四个阶段。预处理器把源程序聚合在一起,并把宏定义转换为源语言;编译器根据预处理的源程序生成汇编程序;汇编器处理汇编程序,生成可重定位的机器代码;连接器将可重定位的目标代码和库文件连接到一起,生成可执行程序。...

2021-12-23 22:52:53 1875 1

原创 TCP/IP

2021-12-14 22:44:15 201

原创 ARM Cortex M3&M4处理器复位流程

ARM规定,M3和M4处理器复位后,首先从0x00000000和0x00000004地址读取Main Stack Pointer(MSP)和reset vector(the starting address of the reset handler),分别赋值给MSP寄存器和PC寄存器,如下:顺带说下,为什么STM32的Flash起始地址是0x08000000,而不是0x00000000,为了从不同的存储器启动。1、从main Flash memory启动时,将0x08000000映射到0.

2021-12-01 23:36:20 3475

原创 Cortex M3&M4 memory map

下图出自《The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors》,也就是国内翻译版的《ARM Cortex-M3与Cortex-M4权威指南》。连续的4GB地址空间,包含了flash地址,ram地址,还有各种外设地址。每个芯片厂家的4GB地址空间都会根据ARM的规定来设置,但是每家都会有所不同,所以会见到不同芯片烧录的起始地址会有所不同,最后会附一张STM32的memory map。NVIC:详细分析startup启动文件时会

2021-11-30 22:01:24 1041

原创 存储器分类和特性

1、RAM(Random Access Memory):随机存取存储器,根据存储单元的工作原理,分为静态RAM(SRAM)和动态RAM(DRAM)。2、ROM(Read Only Memory):只读存储器,根据制造工艺和功能,分为掩膜编程的只读存储器MROM(Mask-programmedROM)、可编程的只读存储器PROM(Programmable ROM)、可擦除可编程的只读存储器EPROM(Erasable Programmable ROM)、可电擦除可编程的只读存储器EEPROM(Elecr.

2021-11-29 22:45:19 1764

原创 arm系统异常与中断

2021-11-28 22:13:22 124

原创 arm寄存器

一、ATPCS即ARM-THUMB procedure call standard(ARM-Thumb过程调用标准)的简称。ATPCS就是基于ARM指令集和THUMB指令集过程调用的规范。(以下规则来自百度百科,暂时没有去看官方的文档)1、参数的传递规则参数个数可变的子程序参数传递规则对于参数个数可变的子程序,当参数不超过4个时,可以使用寄存器R0~R3来进行参数传递;当参数超过4个时,还可以使用数据栈来传递参数。在参数传递时,将所有参数看做是存放在连续的内存单元中的字数据。然后,依次将各名字...

2021-11-28 22:10:24 787

原创 常用汇编指令汇总

2021-11-28 22:07:56 209

原创 SEGGER RTT使用总结

SEGGER RTT使用总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使

2020-09-21 08:56:41 2609

key_scan.zip

支持单个按键、组合按键,电平高低不同键值,repeat功能,长按短按,移植非常简单,良心资源,工作8年,一直在使用

2020-04-26

空空如也

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

TA关注的人

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