STM32启动文件详解

2023-05-16

;先在RAM中分配系统使用的栈,RAM的起始地址为0x2000_0000
;然后在RAM中分配变量使用的堆
;然后在CODE区(flash)分配中断向量表,flash的起始地址为0x0800_0000,该中断向量表就从这个起始地址开始分配
;分配完成后,再定义和实现相应的中断函数,
;所有的中断函数全部带有[weak]特性,即弱定义,如果编译器发现在别处文件中定义了同名函数,在链接时用别处的地址进行链接。
;中断函数仅仅实现了Reset_Handler,其他要么是死循环,要么仅仅定义了函数名称

;STM32被设置为从内部FLASH启动时(这也是最常见的一种情况),当STM32遇到复位信号后,
;从0x0800_0000处取出栈顶地址存放于MSP寄存器,从0x0800_0004处取出复位中断服务入口地址放入PC寄存器,
;继而执行复位中断服务程序Reset_Handler,
;Reset_Handler仅仅执行了两个函数调用,一个是SystemInit,另一个__main,
;SystemInit定义在system_stm32f10x.c中,主要初始化了STM的时钟系统:HSI,HSE,LSI,LSE,PLL,SYSCLK,USBCLK,APECLK等等.
;__main函数由编译器生成,负责初始化栈、堆等,并在最后跳转到用户自定义的main()函数,来到C的世界。


Stack_Size      EQU     0x00000400  ;//定义堆栈大小
                AREA    STACK, NOINIT, READWRITE, ALIGN=3  ;//定义一个数据段 按8字节对齐    ;AREA 伪指令用于定义一个代码段或数据段 NOINIT:指定此数据段仅仅保留了内存单元,而没有将各初始值写入内存单元,或者将各个内存单元值初始化为0
Stack_Mem       SPACE   Stack_Size    ;//保留Stack_Size大小的堆栈空间 分 配连续 Stack_Size 字节的存储单元并初始化为 0
__initial_sp  ;//标号,代表堆栈顶部地址,后面有用
                                                  
; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size       EQU     0x00000200    ;//定义堆空间大小
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3  ;//定义一个数据段,8字节对齐
__heap_base      ;//标号,代表堆末底部地址,后面有用
Heap_Mem        SPACE   Heap_Size     ;//保留Heap_Size的堆空间  
__heap_limit     ;//标号,代表堆界限地址,后面有用
    ;PRESERVE8 指令指定当前文件保持堆栈八字节对齐。 它设置 PRES8 编译属性以通知链接器。
    ;链接器检查要求堆栈八字节对齐的任何代码是否仅由保持堆栈八字节对齐的代码直接或间接地调用。
                PRESERVE8 ;//指示编译器8字节对齐
                THUMB   ;//指示编译器以后的指令为THUMB指令 

;中断向量表定义
; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY   ;//定义只读数据段,其实放在CODE区,位于0地址
                EXPORT  __Vectors    ;EXPORT:在程序中声明一个全局的标号__Vectors,该标号可在其他的文件中引用
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size
__Vectors       DCD     __initial_sp               ; Top of Stack  ;给__initial_sp分配4字节32位的地址0x0
                DCD     Reset_Handler              ; Reset Handler ; 给标号Reset Handler分配地址为0x00000004
                DCD     NMI_Handler                ; NMI Handler ; 给标号NMI Handler分配地址0x00000008
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved  ; 这种形式就是保留地址,不给任何标号分配
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SVC_Handler                ; SVCall Handler
                DCD     DebugMon_Handler           ; Debug Monitor Handler
                DCD     0                          ; Reserved
                DCD     PendSV_Handler             ; PendSV Handler
                DCD     SysTick_Handler            ; SysTick Handler
                ; External Interrupts
                DCD     WWDG_IRQHandler            ; Window Watchdog
                DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler          ; Tamper
                DCD     RTC_IRQHandler             ; RTC
                DCD     FLASH_IRQHandler           ; Flash
                DCD     RCC_IRQHandler             ; RCC
                DCD     EXTI0_IRQHandler           ; EXTI Line 0
                DCD     EXTI1_IRQHandler           ; EXTI Line 1
                DCD     EXTI2_IRQHandler           ; EXTI Line 2
                DCD     EXTI3_IRQHandler           ; EXTI Line 3
                DCD     EXTI4_IRQHandler           ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
                DCD     ADC1_2_IRQHandler          ; ADC1 & ADC2
                DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
                DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
                DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
                DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
                DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
                DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
                DCD     TIM1_UP_IRQHandler         ; TIM1 Update
                DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
                DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler            ; TIM2
                DCD     TIM3_IRQHandler            ; TIM3
                DCD     TIM4_IRQHandler            ; TIM4
                DCD     I2C1_EV_IRQHandler         ; I2C1 Event
                DCD     I2C1_ER_IRQHandler         ; I2C1 Error
                DCD     I2C2_EV_IRQHandler         ; I2C2 Event
                DCD     I2C2_ER_IRQHandler         ; I2C2 Error
                DCD     SPI1_IRQHandler            ; SPI1
                DCD     SPI2_IRQHandler            ; SPI2
                DCD     USART1_IRQHandler          ; USART1
                DCD     USART2_IRQHandler          ; USART2
                DCD     USART3_IRQHandler          ; USART3
                DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler        ; RTC Alarm through EXTI Line
                DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
                DCD     TIM8_BRK_IRQHandler        ; TIM8 Break
                DCD     TIM8_UP_IRQHandler         ; TIM8 Update
                DCD     TIM8_TRG_COM_IRQHandler    ; TIM8 Trigger and Commutation
                DCD     TIM8_CC_IRQHandler         ; TIM8 Capture Compare
                DCD     ADC3_IRQHandler            ; ADC3
                DCD     FSMC_IRQHandler            ; FSMC
                DCD     SDIO_IRQHandler            ; SDIO
                DCD     TIM5_IRQHandler            ; TIM5
                DCD     SPI3_IRQHandler            ; SPI3
                DCD     UART4_IRQHandler           ; UART4
                DCD     UART5_IRQHandler           ; UART5
                DCD     TIM6_IRQHandler            ; TIM6
                DCD     TIM7_IRQHandler            ; TIM7
                DCD     DMA2_Channel1_IRQHandler   ; DMA2 Channel1
                DCD     DMA2_Channel2_IRQHandler   ; DMA2 Channel2
                DCD     DMA2_Channel3_IRQHandler   ; DMA2 Channel3
                DCD     DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5
__Vectors_End
__Vectors_Size  EQU  __Vectors_End - __Vectors
                AREA    |.text|, CODE, READONLY ;代码段定义

; Reset Handler
;利用PROC、ENDP这一对伪指令把程序段分为若干个过程,使程序的结构加清晰
Reset_Handler   PROC   ;过程的开始 
                EXPORT  Reset_Handler             [WEAK];[WEAK] 弱定义,意思是如果在别处也定义该标号(函数),在链接时用别处的地址。
              ;如果没有其它定方定义,编译器也不报错,以此处地址进行链接。
              ;EXPORT提示编译器该标号可以为外部文件引用。
                IMPORT  __main    ;通知编译器要使用的标号在其他文件
                IMPORT  SystemInit
                LDR     R0, =SystemInit
                BLX     R0          ;BX是ARM指令集和THUMB指令集之间程序的跳转     
                LDR     R0, =__main ;使用“=”表示LDR目前是伪指令不是标准指令。这里是把__main的地址给RO。
                BX      R0   ;BX是ARM指令集和THUMB指令集之间程序的跳转
                ENDP     ;过程的结束
                
; Dummy Exception Handlers (infinite loops which can be modified)
NMI_Handler     PROC
                EXPORT  NMI_Handler                [WEAK]
                B       .      ;原地跳转(即无限循环),
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler          [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler           [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler         [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler           [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler             [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler            [WEAK]
                B       .
                ENDP
Default_Handler PROC
                EXPORT  WWDG_IRQHandler            [WEAK]
                EXPORT  PVD_IRQHandler             [WEAK]
                EXPORT  TAMPER_IRQHandler          [WEAK]
                EXPORT  RTC_IRQHandler             [WEAK]
                EXPORT  FLASH_IRQHandler           [WEAK]
                EXPORT  RCC_IRQHandler             [WEAK]
                EXPORT  EXTI0_IRQHandler           [WEAK]
                EXPORT  EXTI1_IRQHandler           [WEAK]
                EXPORT  EXTI2_IRQHandler           [WEAK]
                EXPORT  EXTI3_IRQHandler           [WEAK]
                EXPORT  EXTI4_IRQHandler           [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
                EXPORT  ADC1_2_IRQHandler          [WEAK]
                EXPORT  USB_HP_CAN1_TX_IRQHandler  [WEAK]
                EXPORT  USB_LP_CAN1_RX0_IRQHandler [WEAK]
                EXPORT  CAN1_RX1_IRQHandler        [WEAK]
                EXPORT  CAN1_SCE_IRQHandler        [WEAK]
                EXPORT  EXTI9_5_IRQHandler         [WEAK]
                EXPORT  TIM1_BRK_IRQHandler        [WEAK]
                EXPORT  TIM1_UP_IRQHandler         [WEAK]
                EXPORT  TIM1_TRG_COM_IRQHandler    [WEAK]
                EXPORT  TIM1_CC_IRQHandler         [WEAK]
                EXPORT  TIM2_IRQHandler            [WEAK]
                EXPORT  TIM3_IRQHandler            [WEAK]
                EXPORT  TIM4_IRQHandler            [WEAK]
                EXPORT  I2C1_EV_IRQHandler         [WEAK]
                EXPORT  I2C1_ER_IRQHandler         [WEAK]
                EXPORT  I2C2_EV_IRQHandler         [WEAK]
                EXPORT  I2C2_ER_IRQHandler         [WEAK]
                EXPORT  SPI1_IRQHandler            [WEAK]
                EXPORT  SPI2_IRQHandler            [WEAK]
                EXPORT  USART1_IRQHandler          [WEAK]
                EXPORT  USART2_IRQHandler          [WEAK]
                EXPORT  USART3_IRQHandler          [WEAK]
                EXPORT  EXTI15_10_IRQHandler       [WEAK]
                EXPORT  RTCAlarm_IRQHandler        [WEAK]
                EXPORT  USBWakeUp_IRQHandler       [WEAK]
                EXPORT  TIM8_BRK_IRQHandler        [WEAK]
                EXPORT  TIM8_UP_IRQHandler         [WEAK]
                EXPORT  TIM8_TRG_COM_IRQHandler    [WEAK]
                EXPORT  TIM8_CC_IRQHandler         [WEAK]
                EXPORT  ADC3_IRQHandler            [WEAK]
                EXPORT  FSMC_IRQHandler            [WEAK]
                EXPORT  SDIO_IRQHandler            [WEAK]
                EXPORT  TIM5_IRQHandler            [WEAK]
                EXPORT  SPI3_IRQHandler            [WEAK]
                EXPORT  UART4_IRQHandler           [WEAK]
                EXPORT  UART5_IRQHandler           [WEAK]
                EXPORT  TIM6_IRQHandler            [WEAK]
                EXPORT  TIM7_IRQHandler            [WEAK]
                EXPORT  DMA2_Channel1_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel2_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel3_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel4_5_IRQHandler [WEAK]
WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_2_IRQHandler
USB_HP_CAN1_TX_IRQHandler
USB_LP_CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_IRQHandler
TIM1_UP_IRQHandler
TIM1_TRG_COM_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
USBWakeUp_IRQHandler
TIM8_BRK_IRQHandler
TIM8_UP_IRQHandler
TIM8_TRG_COM_IRQHandler
TIM8_CC_IRQHandler
ADC3_IRQHandler
FSMC_IRQHandler
SDIO_IRQHandler
TIM5_IRQHandler
SPI3_IRQHandler
UART4_IRQHandler
UART5_IRQHandler
TIM6_IRQHandler
TIM7_IRQHandler
DMA2_Channel1_IRQHandler
DMA2_Channel2_IRQHandler
DMA2_Channel3_IRQHandler
DMA2_Channel4_5_IRQHandler
                B       .
                ENDP
                ALIGN ;填充字节使地址对齐
;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
;堆和栈的初始化
                 IF      :DEF:__MICROLIB ;“DEF”的用法——:DEF:X 就是说X定义了则为真,否则为假
                       ;如果定义了MICORLIB,
                 EXPORT  __initial_sp  ;则将栈顶地址,
                 EXPORT  __heap_base  ;堆起始地址赋予全局属性,
                 EXPORT  __heap_limit  ;堆末端界限地址赋予全局属性,使外部程序可调用
                
                 ELSE  ;如果没定义__MICROLIB,则使用默认的C运行时库
                
                 IMPORT  __use_two_region_memory  ;;通知编译器要使用的标号在其他文件__use_two_region_memory    
                 EXPORT  __user_initial_stackheap ;声明全局标号__user_initial_stackheap,这样外程序也可调用此标号
             ;则进行堆栈和堆的赋值,在__main函数执行过程中调用

    ;如果使用默认的C库,程序启动过程中就不会执行该标号下的代码
__user_initial_stackheap     ;标号__user_initial_stackheap,表示用户堆栈初始化程序入口
        ;//则进行堆栈和堆的赋值,在__main函数执行过程中调用。
                 LDR     R0, =  Heap_Mem     ;保存堆始地址
                 LDR     R1, =(Stack_Mem + Stack_Size) ;保存栈的大小
                 LDR     R2, = (Heap_Mem +  Heap_Size)  ;保存堆的大小
                 LDR     R3, = Stack_Mem    ;保存栈顶指针
                 BX      LR
                 ALIGN  ;填充字节使地址对齐

                 ENDIF
     
                 END

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32启动文件详解 的相关文章

  • 边缘计算

    多接入边缘计算 xff08 MEC xff09 是云计算之后的又一项突破性技术 xff0c 该技术有望使得应用和内容更接近网络边缘 xff0c 能够降低网络延迟 xff0c 并提供新的服务 iGR Research的分析师Iain Gill
  • 从Ubuntu 16 升级到Ubuntu 18

    原地址 xff1a https www bingyublog com 2018 04 27 E5 A6 82 E4 BD 95 E4 BD BF E7 94 A8 E5 91 BD E4 BB A4 E4 BB 8EUbuntu16 04L
  • 线性判别分析(Linear Discriminant Analysis,LDA)

    基础不牢 xff0c 地动山摇 线性判别分析 xff08 Linear Discriminant Analysis xff0c LDA xff09 是一种经典的线性学习方法 xff0c 它既可以用于分类问题 xff0c 也可以用于有监督的特
  • java中HashMap原理

    1 为什么用HashMap xff1f HashMap是一个散列桶 xff08 数组和链表 xff09 xff0c 它存储的内容是键值对 key value 映射HashMap采用了数组和链表的数据结构 xff0c 能在查询和修改方便继承了
  • 手把手教你撸touchgfx的数字键盘(一)

    目录 1 准备工作 1 1 软件准备 1 2 硬件准备 2 键盘制作 2 1 键盘背景图设计 2 2 自定义键盘控件 2 3 screenview与keyboard之间传递消息 3 实验效果 4 功能拓展和项目资料 4 1 改进的方面 4
  • svn 命令行使用总结

    1 上传项目到SVN服务器上 svn import project dir xff08 本地项目全路径 xff09 http 192 168 1 242 8080 svn IOS Ben remote dir xff08 svn项目全路径
  • Ubuntu 基本使用和Bash编程基础

    Ubuntu基本使用 sudo 申请权限 linux 包管理工具 yum apt apt install XXX apt remove XXX apt autoremove XXX 常用指令 cd 进入目录 ls 查看文件 以点为开头的文件
  • CentOS7如何操作防火墙

    CentOS7中如何操作防火墙 查看防火墙状态 xff1a 命令 xff1a systemctl status firewalld service test 64 test1 systemctl status firewalld servi
  • ROS进二阶学习笔记(1) TF 学习笔记1:TF介绍 + tf工具

    ROS进二阶学习笔记 xff08 1 xff09 TF 学习笔记1 TF介绍 43 tf工具 Ref http wiki ros org tf Tutorials Learning tf gt gt Ref http wiki ros or
  • RGB颜色对照表

    修改字体颜色 xff0c 大小使用示例如下 xff1a lt font color 61 FFB6C1 size 61 5 face 61 34 隶书 34 gt color 61 FFB6C1 size 61 72 face 61 34
  • 顿悟系列-JS对象键值修改,删除

    在Angular开发中 xff0c 遇到了JS对象键值对的知识实际运用 xff0c 不常见 xff0c 但实用 假设我们需要把 var a 61 a 34 张三 34 b 34 24 34 c 34 帅哥 34 a这个对象的键值全部改变自己
  • OVN简介

    作者简介 xff1a 郑敏先 xff0c 就职于诺云系统 xff08 上海 xff09 有限公司 工作地点为南京的诺云研发中心 担任解决方案工程师 本人博客为 xff1a http blog csdn net zhengmx100 一 为什
  • Windows 实现 读取 HDFS 上 文件内容

    前几天一直在搞HDFS文件的下载与上传 xff0c 但是在集群内部可以 xff0c 在集群外部却出现了错误 xff0c 照说 xff0c HDFS的保密协议应该没那么高吧 xff0c 不解中 后来才发现自己网上找的代码 xff0c 却并未理
  • 图像地点场景类型识别(PlaceCNN)实践

    从图像中判断图像场景所处的地点类型 xff0c 是图像理解的一种常见任务 本质上场景类别标注数据足够的情况下 xff0c 它可以属于图像分类的一种 xff0c 因此直接利用现有成熟的网络架构如ResNet就可以实现较高精度的图像涉及场所的识
  • 【2021最新】Keras自定义Loss函数+接受输入+KerasTensor天坑解决方法

    文章目录 自定义函数 43 输入方法第一个错误第二个错误 自定义函数 43 输入方法 环境配置 xff1a Tensorflow2 4 xff0c keras2 4 3 Keras自定义Loss函数 xff0c 增加输入的方法 xff0c
  • 从零使用OpenCV快速实现简单车牌识别系统

    从零使用OpenCV快速实现简单车牌识别系统 这篇文章献给所有第一次听说车牌识别ANPR但需要短时间实现的苦逼同学们 最近的小学期实训做的是一个车牌识别系统 xff0c 说实话真不知道学校怎么想的 xff0c 虽然说图像处理也算的上是数字媒
  • SUMO交通仿真-核心概念和基础知识速览

    文章目录 sumo环境变量设置注意事项路网配置JOSM对地图进行 96 清洗 96 交通需求建模route amp trip输入数据方法流量路由分配 检测线圈车辆属性设置速度分布 特殊设置驾驶员状态事故仿真 仿真运行设置sumocfg 输出
  • Haar分类器原理1——矩形特征与积分图

    引言 Haar分类器又称Viola Jones识别器 xff0c 是Viola和Jones分别在2001年的 Rapid Object Detection using a Boosted Cascade of Simple Features
  • window打开服务的dos命令

    微软系统必备的dos命令 开始 gt 运行 输入以下命令 xff0c 或者win 43 R xff0c 输入以下命令 1 gpedit msc 组策略 2 sndrec32 录音机 3 Nslookup IP地址侦测器 4 explorer
  • 如何在windows server 2003服务器上创建web服务器和ftp服务器

    将xp客户机和server2003设置为同一网段VMnet1上 配置web服务器的IP地址 配置xp客户机的IP地址 检测xp客户机和web服务器是否互通 将文件解压缩到d盘 xff0c 查看到三个文件夹 安装web服务组件 打开开始 管理

随机推荐

  • Kali Linux 2020.3如何安装中文输入法

    安装ibus拼音输入法 sudo apt get install ibus ibus pinyin 设置ibus为首选默认输入法 im config 输入法配置的重要提示信息 xff0c 点击OK即可 是否确认更改设置输入法 xff0c 点
  • Markdown编辑器

    Markdown编辑器 按照Markdown编辑器的使用环境 xff0c 可以将它们归纳为三类 平台集成工具 xff1a 各大在线博客 社区平台自带的写作工具 xff0c 比如CSDN 博客园 简书等 独立软件类 xff1a 下载到自己机器
  • devstack安装OpenStack Pike版本 (OVN+VLAN)

    控制节点配置文件 Sample DevStack local conf This sample file is intended to be used for your typical DevStack environment that 3
  • Fiddler抓包Java请求遇到的问题(一)

    Fiddler 解决无法监听 Java 的 HttpUrlConnection 请求 官网 https www telerik com fiddler Q JavaTraffic jre DproxySet 61 true DproxyHo
  • Win10系统正确设置MTU值加快WIFI速度的方法

    MTU是Maximum Transmission Unit缩写 xff0c 中文名 xff1a 最大传输单元 工具 原料 硬件 xff1a 电脑 操作系统 xff1a Windows 10 方法 步骤 第一步 xff1a 查询自己电脑的MT
  • CentOS-7 安装Lustre-2.10.1文件系统

    注 xff1a 原创文章 xff0c 转载请注明出处 一 文档说明 Lustre 是一种强大的平行 分布式文件系统 xff0c 通常用于HPC行业 主要组建包括 xff1a 元数据服务器 Metadataservers xff0c MDSs
  • 【华为练习题】求麻将清一色和牌问题

    华为练习题 求麻将清一色和牌问题 题目 题目描述 xff1a 清一色是麻将番种之一 xff0c 指由一种花色的序数牌组成的和牌 数字1 9 xff0c 每个数字最多有4张牌 我们不考虑具体花色 xff0c 我们只看数字组合 刻子 xff1a
  • 使用vscode开发stm32

    vscode 下载地址 xff1a https code visualstudio com 安装插件 xff1a Cortec Debug Cortex Debug Device Support Pack STM32F1 图1 vscode
  • typedef 的用法

    typedef 的用法 以下是参考部分 此部分参考自 xff1a http blog sina com cn u 572f7666010008dm 用途一 xff1a 定义一种类型的别名 xff0c 而不只是简单的宏替换 可以用作同时声明指
  • C语言变参的使用

    C语言中有很多变参的使用 xff0c 例如printf 的原型是int printf const char fmt xff0c 那么C语言是如何解析和处理这些变参的呢 xff1f 下面进行简单的总结 xff1a C语言中定义了下面的一些宏
  • strstr函数的精彩之处

    在C的库函数里面有很多精彩的代码 xff0c 仔细分析会体会到这些写法和思路的巧妙之处 写strstr函数的时候要判断两个字符换str1和str2什么时候开始匹配 xff0c 什么时候结束 xff0c 这两点都是比较容易做到的 xff0c
  • RISC与CISC

    作者 xff1a Austin Wang 链接 xff1a http www zhihu com question 20783321 answer 72598657 这里简单来谈一下 xff0c ARM和X86之间为什么不太具有可比性的问题
  • NandFlash和NorFlash的区别

    一 xff0e NAND和NOR的比较 NOR和NAND是现在市场上两种主要的非易失闪存技术 Intel于1988年首先开发出NOR flash技术 xff0c 彻底改变了原先由EPROM 和EEPROM一统天下的局面 紧接着 xff0c
  • 安装 CORD 之前需要了解的术语

    CORD Central Office Re Architected as a Data Center 是ONF组织推动的开源的边缘计算的项目 CORD 项目的官方资料包括源代码 xff0c 安装指导等 本文对官方安装指导涉及的一些术语进行
  • SoC嵌入式软件架构设计之一:系统内存需求评估

    博主 xff1a 吴跃前 转载自 xff1a http www cnblogs com yueqian scut p 4015046 html SoC嵌入式软件架构设计之一 xff1a 系统内存需求评估 内存是SoC System on C
  • S5PV210启动过程分析

    刚刚接触 S5PV210 xff0c 看了官方的数据手册感觉跟以前用的 STM32 单片机根本不在一个层面上 xff0c 当然两者的用途不同 xff0c 不具备可比性 可能之前习惯使用 STM32 等单片机 xff0c 现在接触 S5PV2
  • ARM支持的4种堆栈工作方式

    1 满递增堆栈 xff1a 堆栈指针指向最后压入堆栈的数据 xff0c 且由低地址向高地址生成 2 满递减堆栈 xff1a 堆栈指针指向最后压入堆栈的数据 xff0c 且由高地址向低地址生成 3 空递增堆栈 xff1a 堆栈指针指向下一个要
  • 前变址、回写前变址、后变址

    根据数据传输传输的时机以及在指令执行后基址寄存器是否被更新 xff0c 寄存器变址有前变址 回写前变址和后变址暗中方式 执行指令的时候 xff0c 如果先进行变址运算 xff0c 后传递数据 xff0c 那么这种方式就是前变址方式 如图1所
  • ubuntu 配置 tftp 服务器

    注意 xff1a 1 tftpboot为根目录 2 已经是root权限不用再加sudo 临时获取权限 3 使用netstat au grep tftp xff0c 保证tftp是启动的 出现 udp 0 0 tftp 则说明tftp服务已经
  • STM32启动文件详解

    先在RAM中分配系统使用的栈 xff0c RAM的起始地址为0x2000 0000 然后在RAM中分配变量使用的堆 然后在CODE区 flash 分配中断向量表 xff0c flash的起始地址为0x0800 0000 xff0c 该中断向