【嵌入式Linux】i.MX6ULL 复位中断服务函数的编写

文章目录

  • 1. 复位中断服务函数
    • 0.1 禁止IRQ中断
      • 0.1.1 方式
      • 0.1.2 代码
      • 0.1.3 缩写说明
      • 0.1.4 PSTATE寄存器简介
      • 0.1.5 禁止IRQ中断的目的
    • 1.1 关闭I/D Cache, MMU
      • 1.1.1 方式
      • 1.1.2 代码
      • 1.1.3 缩写说明
      • 1.1.4 关闭I/D Cache, MMU的目的
    • 2.2 设置中断向量偏移
      • 2.2.1 方式
      • 2.2.2 代码
      • 2.2.3 缩写说明
      • 2.2.4 设置中断向量偏移的目的
    • 3.1 清除bss段
      • 3.1.1 方式
      • 3.1.2 代码
      • 3.1.3 缩写说明
      • 3.1.4 bss段简介
      • 3.1.5 清除bss段的目的
    • 4.1 设置处理器进入IRQ模式
      • 4.1.1 方式
      • 4.1.2 代码
      • 4.1.3 缩写说明
      • 4.1.4 CPSR寄存器简介
      • 4.1.5 设置处理器进入IRQ模式的目的
    • 5.1 设置处理器进入SYS模式
    • 6.1 设置处理器进入SVC模式
    • 7.1 使能IRQ中断
      • 7.1.1 方式
      • 7.1.2 代码
      • 7.1.3 缩写说明
      • 7.1.4 PSTATE寄存器简介
      • 7.1.5 使能IRQ中断的目的
    • 8.1 跳转到main函数的入口
      • 8.1.1 代码
      • 8.1.2 缩写说明
      • 8.1.3 主函数跳转的目的
    • 9.1 完整代码

本文章结合了正点原子的 i.mx6u嵌入式Linux开发指南和笔者的理解。

1. 复位中断服务函数

0.1 禁止IRQ中断

0.1.1 方式

  • 方式:修改PSTATE处理器状态寄存器
    • PSTATE 是一个特殊的寄存器,它包含了处理器当前的运行状态信息。

0.1.2 代码

    cpsid i                     @ 禁止IRQ中断

0.1.3 缩写说明

  • PSTATE: Processor State 寄存器,包含处理器当前的运行状态信息。
  • cpsid: Change Processor State Disable 中断禁用状态修改指令
    • i: 代表禁用IRQ中断

0.1.4 PSTATE寄存器简介

  • A (Application) 位:控制应用程序模式下的中断是否允许。
  • I (IRQ) 位:控制 IRQ 中断是否允许。
  • F (FIQ) 位:控制 FIQ 中断是否允许。
  • M (Mode) 位:控制处理器当前运行的模式。

0.1.5 禁止IRQ中断的目的

  • 在进行关键的系统配置或者在特定的操作期间,禁用IRQ中断可以防止中断处理程序干扰或者修改正在执行的敏感操作。
  • 确保在执行某些关键代码段时系统的稳定性和可预测性,例如系统初始化、关键数据结构的更新等。
  • 通过禁用中断,可以简化程序的设计和调试,因为它减少了并发执行和竞态条件的复杂性。

1.1 关闭I/D Cache, MMU

1.1.1 方式

  • 方式:修改SCTLR寄存器(System Control Register,可以通过 CP15 协处理器访问)
    • SCTLR寄存器:
      @ bit0:MMU
      @ bit1:对齐控制
      @ bit2:D Cache
      @ bit11:分支预测控制
      @ bit12:I Cache

1.1.2 代码

  	MRC p15, 0, r0, c1, c0, 0   @ Move to Register from Coprocessor(这个形式操作的是SCTLR寄存器)bic r0, r0, #(1<<12)        @ 关闭I Cache(bic:Bit Clear)bic r0, r0, #(1<<11)        @ 关闭分支预测bic r0, r0, #(1<<2)         @ 关闭D Cachebic r0, r0, #(1<<1)         @ 关闭对齐控制bic r0, r0, #(1<<0)         @ 关闭MMUMCR p15, 0, r0, c1, c0, 0   @ Move to Coprocessor from Register

1.1.3 缩写说明

  • SCTLR: System Control Register 系统控制寄存器,可以通过 CP15 协处理器访问
  • MRC: Move to general-purpose register from System register 从系统寄存器读到通用目的寄存器中
  • MCR: Move to System register from general-purpose register or execute a System instruction 从通用寄存器移到系统寄存器或执行系统指令
  • bic: Bit Clear 清除特定比特位
  • MMU: Memory Management Unit 的缩写,中文意思是内存管理单元
  • I/D Cache: Instruction Cache and Data Cache 它们是处理器中用来加速指令和数据访问的内存
  • CP15: coprocessor15 用于控制和配置ARM处理器系统,包括架构和功能识别

1.1.4 关闭I/D Cache, MMU的目的

  • 编写 i.MX6ULL 的复位中断服务函数时,要先关闭 I/D Cache 和 MMU,是为了确保系统在启动时处于一个干净的状态。
  • 因为在复位之后,系统处于一个未知的状态,缓存和 MMU 可能保存着之前运行程序的残留数据,这会导致系统运行不稳定。
  • 关闭 I/D Cache 和 MMU 可以清除这些残留数据,确保系统从一个干净的状态开始运行。
  • 此外,关闭 I/D Cache 和 MMU 可以避免在启动过程中出现一些潜在的问题,例如缓存一致性问题。

2.2 设置中断向量偏移

2.2.1 方式

  • 方式:修改VBAR寄存器(Vector Base Address Register,可以通过 CP15 协处理器访问)

2.2.2 代码

    ldr r0, =0x87800000          @ 加载中断向量表的基地址到寄存器r0dsb                         @ Data Synchronization Barrier 数据同步屏障isb                         @ Instruction Synchronization Barrier 指令同步屏障MCR p15, 0, r0, c12, c0, 0  @ 设置VBAR寄存器为0x87800000dsb                         @ Data Synchronization Barrier 数据同步屏障isb                         @ Instruction Synchronization Barrier 指令同步屏障

2.2.3 缩写说明

  • VBAR: Vector Base Address Register 矢量基地址寄存器,用于设置中断向量表的基地址
  • MCR: Move to System register from general-purpose register or execute a System instruction 从通用寄存器移到系统寄存器或执行系统指令
  • ldr: Load Register 加载寄存器
  • dsb: Data Synchronization Barrier 数据同步屏障,保证之前的存储操作完成后才执行后续的操作
  • isb: Instruction Synchronization Barrier 指令同步屏障,保证之前的指令执行完成后才开始执行后续的指令
  • CP15: coprocessor15 用于控制和配置ARM处理器系统,包括架构和功能识别

2.2.4 设置中断向量偏移的目的

  • 在处理器启动或系统重配置过程中,需要设置中断向量表的基地址,以便处理器在接收到中断时能够正确跳转到适当的处理代码。
  • 使用VBAR寄存器来设置中断向量表的基地址,可以灵活地根据系统的需要调整中断处理程序的位置。
  • 在设置VBAR之前后使用dsbisb确保任何之前的操作完成并且之后的指令加载更新后的信息,这是确保系统稳定性和一致性的关键步骤。
  • 这样做可以确保系统在处理中断时的响应更加迅速和可靠。

3.1 清除bss段

3.1.1 方式

  • 方式:使用循环逐个清除

3.1.2 代码

    ldr r0, _bss_start         @ 将_bss_start地址加载到r0寄存器ldr r1, _bss_end           @ 将_bss_end地址加载到r1寄存器mov r2, #0                 @ 将0存储到r2寄存器
bss_loop:stmia r0!, {r2}            @ 存储r2寄存器的值到r0指向的内存地址,并自增r0cmp r0, r1                 @ 比较r0和r1的值ble bss_loop               @ 如果r0小于等于r1,则跳转到bss_loop标签继续循环

3.1.3 缩写说明

  • ldr: Load Register,从内存加载数据到寄存器。
  • mov: Move,将立即数或寄存器值移动到另一个寄存器。
  • stmia: Store Multiple Increment After,存储多个寄存器的内容到内存,并在存储后地址自增。
  • cmp: Compare,比较两个寄存器的值。
  • ble: Branch if Less than or Equal,如果第一个操作数小于或等于第二个操作数,则跳转到指定标签。

3.1.4 bss段简介

  • bss段(Block Started by Symbol)是程序编译后生成的一个内存区域,用于存放程序中未初始化的全局变量和静态变量。
  • 在程序启动时,bss段需要被清零,以确保所有未初始化的变量从一个固定的基线开始,避免出现随机数据导致程序行为不可预测。

3.1.5 清除bss段的目的

  • 程序执行前清零bss段是为了初始化所有未初始化的全局变量和静态变量,确保它们从0开始。
  • 这一步是重要的初始化过程,帮助防止程序在运行时遇到不确定的状态,增强程序的稳定性和可靠性。
  • 通过逐个内存地址清零,保证了bss段内的每个变量都被正确初始化。

4.1 设置处理器进入IRQ模式

4.1.1 方式

  • 修改cpsr寄存器(Current Program Status Register,当前程序状态寄存器)

4.1.2 代码

    mrs r0, cpsr               @ 读取CPSR寄存器的值到r0寄存器bic r0, r0, #0x1f          @ 通过位清除操作,清除r0寄存器的低5位orr r0, r0, #0x12          @ 将r0寄存器的值设置为IRQ模式msr cpsr, r0               @ 将r0寄存器的值写回CPSR寄存器ldr sp, =0x80600000        @ 设置IRQ下的sp栈指针

4.1.3 缩写说明

  • mrs: Move from Special register,从特殊寄存器(如CPSR)移动数据到通用寄存器。
  • bic: Bit Clear,对寄存器值进行位清除操作。
  • orr: Logical inclusive OR,对寄存器值进行逻辑包含或操作。
  • msr: Move to Special register,将数据从通用寄存器移动到特殊寄存器(如CPSR)。
  • ldr: Load Register,从内存加载数据到寄存器。

4.1.4 CPSR寄存器简介

  • CPSR(Current Program Status Register)包含了处理器状态和控制信息,例如:
    • APSR(Application Program Status Register):应用程序状态寄存器,包含条件标志等。
    • 指令集状态
    • IT块状态
    • 字节序
    • 当前处理器模式。

4.1.5 设置处理器进入IRQ模式的目的

  • 在IRQ(中断请求)模式下,处理器能响应外部或硬件触发的中断。
  • 通过设置特定模式的栈指针,可以确保中断处理过程中的数据独立于其他模式,提高中断处理的效率和安全。
  • 清除CPSR的低5位并设置为IRQ模式,是为了确保处理器切换到正确的操作模式来处理即将到来的中断。这种模式切换是必要的,以便在处理外部中断时保持系统的稳定和响应。

5.1 设置处理器进入SYS模式

与4的代码基本相同

6.1 设置处理器进入SVC模式

与4的代码基本相同

7.1 使能IRQ中断

7.1.1 方式

  • 修改PSTATE处理器状态寄存器

7.1.2 代码

    cpsie i                    @ 使能IRQ中断

7.1.3 缩写说明

  • cpsie: Change Processor State Enable - 用于使能处理器状态寄存器中的某些位。
  • i: 表示具体操作的是I(IRQ)位。

7.1.4 PSTATE寄存器简介

  • PSTATE(Processor State Register)是一个特殊寄存器,包含了处理器当前的运行状态信息:
    • A (Application) 位:控制应用程序模式下的中断是否允许。
    • I (IRQ) 位:控制 IRQ 中断是否允许。
    • F (FIQ) 位:控制 FIQ 中断是否允许。
    • M (Mode) 位:控制处理器当前运行的模式。

7.1.5 使能IRQ中断的目的

  • 通过使能IRQ中断,处理器可以响应外部或硬件触发的中断请求。
  • 这是一种重要的系统功能,允许操作系统或应用程序有效地处理异步事件,如硬件设备的信号。
  • 保持系统的响应性和功能性,确保在关键时刻可以处理外部事件。

8.1 跳转到main函数的入口

8.1.1 代码

    b main                     @ 跳转到main函数的入口

8.1.2 缩写说明

  • b: Branch - 跳转指令,用于无条件跳转到指定的标签或地址。

8.1.3 主函数跳转的目的

  • main函数通常是程序的入口点,在完成了初步的系统设置和环境准备后,跳转到main函数开始执行程序的主体部分。
  • 这标志着从低级的启动代码(如引导或初始化代码)到高级应用逻辑的过渡,允许程序开始执行其核心功能。

9.1 完整代码

@ 复位中断服务函数
Reset_Handler:@ 0.禁止IRQ中断@ 方式:修改PSTATE处理器状态寄存器@ Change PE State (CPS) 用于修改处理器状态寄存器 (PSTATE) 中的某些位@ PSTATE 是一个特殊的寄存器,它包含了处理器当前的运行状态信息,包括:@ A (Application) 位: 控制应用程序模式下的中断是否允许。@ I (IRQ) 位: 控制 IRQ 中断是否允许。@ F (FIQ) 位: 控制 FIQ 中断是否允许。@ M (Mode) 位: 控制处理器当前运行的模式。cpsid i@ 1.关闭I/D Cache, MMU@ 方式:修改SCTLR寄存器@ (System Control Register,可以通过 CP15 协处理器访问)@ SCTLR寄存器:@ bit0:MMU @ bit1:对齐控制 @ bit2:D Cache @ bit11:分支预测控制 @ bit12:I CacheMRC p15, 0, r0, c1, c0, 0   @ Move to Register from Coprocessor(这个形式操作的是SCTLR寄存器)bic r0, r0, #(1<<12)        @ 关闭I Cache(bic:Bit Clear)bic r0, r0, #(1<<11)        @ 关闭分支预测bic r0, r0, #(1<<2)         @ 关闭D Cachebic r0, r0, #(1<<1)         @ 关闭对齐控制bic r0, r0, #(1<<0)         @ 关闭MMUMCR p15, 0, r0, c1, c0, 0   @ Move to Coprocessor from Register@ 2.设置中断向量偏移@ 方式:修改VBAR寄存器@ (Vector Base Address Register,可以通过 CP15 协处理器访问)ldr r0, =0x87800000dsbisbMCR p15, 0, r0, c12, c0, 0  @ 设置VBAR寄存器为0x87800000dsbisb@ 3.清除bss段@ 方式:使用循环逐个清除ldr r0, _bss_start         @ 将_bss_start地址加载到r0寄存器ldr r1, _bss_end           @ 将_bss_end地址加载到r1寄存器mov r2, #0                 @ 将0存储到r2寄存器
bss_loop:stmia r0!, {r2}            @ 存储r2寄存器的值到r0指向的内存地址,并自增r0cmp r0, r1                 @ 比较r0和r1的值ble bss_loop               @ 如果r0小于等于r1,则跳转到bss_loop标签(继续循环)@ 4.设置处理器进入IRQ模式@ 方式:修改cpsr寄存器@ (Current Program Status Register,当前程序状态寄存器)@ 它包含了处理器状态和控制信息,例如 APSR、指令集状态、IT 块状态、字节序和当前处理器模式。 mrs r0, cpsr               @ 读取CPSR寄存器的值到r0寄存器bic r0, r0, #0x1f          @ 通过位清除操作,清除r0寄存器的低5位orr r0, r0, #0x12          @ 使用IRQ模式msr cpsr, r0               @ 将r0寄存器的值写回CPSR寄存器ldr sp, =0x80600000        @ 设置IRQ下的sp指针@ 5.设置处理器进入SYS模式@ 方式:修改cpsr寄存器@ (Current Program Status Register,当前程序状态寄存器)@ 它包含了处理器状态和控制信息,例如 APSR、指令集状态、IT 块状态、字节序和当前处理器模式。 mrs r0, cpsr               @ 读取CPSR寄存器的值到r0寄存器bic r0, r0, #0x1f          @ 通过位清除操作,清除r0寄存器的低5位orr r0, r0, #0x1f          @ 使用SYS模式msr cpsr, r0               @ 将r0寄存器的值写回CPSR寄存器ldr sp, =0x80400000        @ 设置SYS下的sp指针@ 6.设置处理器进入SVC模式@ 方式:修改cpsr寄存器@ (Current Program Status Register,当前程序状态寄存器)@ 它包含了处理器状态和控制信息,例如 APSR、指令集状态、IT 块状态、字节序和当前处理器模式。 mrs r0, cpsr               @ 读取CPSR寄存器的值到r0寄存器bic r0, r0, #0x1f          @ 通过位清除操作,清除r0寄存器的低5位orr r0, r0, #0x13          @ 使用SVC模式msr cpsr, r0               @ 将r0寄存器的值写回CPSR寄存器ldr sp, =0x80200000        @ 设置SVC下的sp指针@ 7.使能IRQ中断@ 方式:修改PSTATE处理器状态寄存器@ Change PE State (CPS) 用于修改处理器状态寄存器 (PSTATE) 中的某些位@ PSTATE 是一个特殊的寄存器,它包含了处理器当前的运行状态信息,包括:@ A (Application) 位: 控制应用程序模式下的中断是否允许。@ I (IRQ) 位: 控制 IRQ 中断是否允许。@ F (FIQ) 位: 控制 FIQ 中断是否允许。@ M (Mode) 位: 控制处理器当前运行的模式。cpsie i@ 8.跳转到main函数的入口b main                     @ 跳转到main函数的入口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/34282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积的通俗解释

以时间和空间两个维度分别理解卷积&#xff0c;先用文字来描述&#xff1a; 时间上&#xff0c;任何当前信号状态都是迄至当前所有信号状态的叠加&#xff1b;时间上&#xff0c;任何当前记忆状态都是迄至当前所有记忆状态的叠加&#xff1b;空间上&#xff0c;任何位置状态都…

python怎样自动提示

第一步、打开pycharm&#xff0c;如下图所示&#xff1a; 第二步、File→Power Save Mode&#xff0c;把下面如图所示的勾去掉&#xff1a; 第三步、去掉勾后&#xff0c;不再使用省电模式&#xff0c;新建一个python文件。输入单词前两个字母&#xff0c;就会自动提示了&#…

PAT B1041. 考试座位号

题目描述 每个PAT考生在参加考试时都会被分配两个座位号:一个是试机座位:另一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号&#xff0c;入座进入试机状态后,系统会显示该考生的考试座位号,考试时考生需要换到考试座位就座。但有些考生迟到了&#xff0c;…

什么是空间数据

在数字孪生领域&#xff0c;需要汇聚、联接、融合地上地下、室内室外等多源异构数据&#xff0c;多源异构数据接入融合是一个复杂且关键的数据处理过程&#xff0c;它涉及将来自不同来源、具有不同格式和结构的数据进行有机整合&#xff0c;以生成一致、完整、可信且可用的数据…

为什么说大模型训练很难?

前言 在人工智能的浪潮中&#xff0c;大模型训练无疑是一股不可忽视的力量。然而&#xff0c;这背后的过程却充满了挑战与困难。今天&#xff0c;让我们一同揭开大模型训练的神秘面纱&#xff0c;探讨为何它值得您的关注与投入。 大模型训练的挑战 大模型训练之所以难&…

描述在React中集成第三方库(如Redux或React Router)的常见模式。

在React中集成第三方库&#xff0c;如状态管理库Redux或路由库React Router&#xff0c;通常遵循一些常见的模式和最佳实践。下面是一些集成这些库的步骤和模式&#xff1a; 集成Redux 安装Redux及相关包: 安装Redux及其中间件&#xff08;如redux-thunk或redux-saga&#xf…

【数据库中的存储桶】

存储桶是对象存储系统中的一个核心概念&#xff0c;起源于Amazon S3&#xff08;Simple Storage Service&#xff09;并被其他对象存储解决方案&#xff08;如MinIO、Google Cloud Storage等&#xff09;广泛采用。在传统的文件系统中&#xff0c;我们通常使用目录和子目录来组…

选择门店收银系统要考虑哪些方面?美业系统Java源码分享私

开店前的一个重要事件就是选择门店收银软件/系统&#xff0c;尤其是针对美容、医美等美业门店&#xff0c;一个优秀专业的系统十分重要&#xff0c;它必须贴合门店的经营需求&#xff0c;提供更全面、便捷、高效的管理功能&#xff0c;帮助提升门店的服务质量和经营效益。 以下…

Python笔记 文件的读取操作

1.open()打开函数 再Python&#xff0c;使用open函数&#xff0c;可以打开一个已经存在的文件&#xff0c;或者创建一个新文件&#xff0c;语法如下 open(name,mode,encoding) name:是要打开的文件名的字符串&#xff08;可以包含文件所在的具体路径&#xff09; mode&…

系统集成要求

系统集成要求 投标人需要支持通过标准化方式实现院内信息系统、信息平台、数据中心、运营管理等各系统之间通过标准化数据集建设实现各系统无缝集成。系统集成包含界面集成及数据层面的集成&#xff0c;为方便用户使用&#xff0c;高度集成临床工作站操作模块&#xff0c;比如消…

Apple-how can i use apple account sign in my app

If you’re enabling an App ID for the first time or for a new app, enable the App ID as a primary 在Apple Developer网站上启用Apple登录服务&#xff08;Sign in with Apple&#xff09;。 生成Sign in with Apple的Key&#xff0c;以及相关的App ID配置。 注册你的应…

【几何】多少正方形?

题目枚举边长为1边长为 2 \sqrt{2} 2 ​边长为 5 \sqrt{5} 5 ​边长为 8 \sqrt{8} 8 ​边长为 13 \sqrt{13} 13 ​ 扩展-使用代码来数1、定义点对象2、定义正方形对象3、初始化所有点4、调用完整代码 题目 多少正方形&#xff1f; 枚举 设每个横纵相邻点得间距为1&#xff0…

AMHS工程师的作用

1、AMHS Automatic Material Handling System&#xff0c;自动物料搬运系统在半导体厂中扮演着至关重要的角色。它通过自动化的方式&#xff0c;提高了晶圆厂的空间利用率、减少了机台的闲置时间、提升了生产效率以及产品良率。随着半导体制造工艺的不断进步&#xff0c;特别是…

线程池概念、线程池的不同创建方式、线程池的拒绝策略

文章目录 &#x1f490;线程池概念以及什么是工厂模式&#x1f490;标准库中的线程池&#x1f490;什么是工厂模式&#xff1f;&#x1f490;ThreadPoolExecutor&#x1f490;模拟实现线程池 &#x1f490;线程池概念以及什么是工厂模式 线程的诞生是因为&#xff0c;频繁的创…

3D Web轻量化引擎HOOPS Commuicator是如何创建AEC查看器的?

在当今数字化时代&#xff0c;建筑、工程和施工&#xff08;AEC&#xff09;行业正经历着一场技术革命。HOOPS Communicator&#xff0c;一款基于HOOPS Web平台的3D Web轻量化引擎&#xff0c;正是这场革命的先锋之一。本文将探讨HOOPS Communicator是如何创建AEC查看器的&…

【CentOS 7】深入指南:使用LVM和扩展文件系统增加root分区存储容量

【CentOS 7】深入指南&#xff1a;使用LVM和扩展文件系统增加root分区存储容量 大家好 我是寸铁&#x1f44a; 【CentOS 7】深入指南&#xff1a;使用LVM和扩展文件系统增加root分区存储容量 ✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 在运行CentOS 7服务器或虚拟机时&a…

用户 token 持久化

用户 token 持久化 业务背景&#xff1a;Token的有效期会持续一段时间&#xff0c;在这段时间内没有必要重复请求token&#xff0c;但是Vuex本身是基于内存的管理方式&#xff0c;刷新浏览器Token会丢失&#xff0c;为了避免丢失需要配置持久化进行缓存 基础思路&#xff1a;…

windows powershell 自动补全/自动suggestion

安装PSReadLine 超级管理员下 Install-Module -Name PSReadLine -RequiredVersion 2.3.5具体最新版本&#xff1a;https://www.powershellgallery.com/packages/PSReadLine/ 编辑powersheel配置文件 在~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 如果没有则…

【扫雷游戏】C语言详解

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

lvs集群 Keepalived

Keepalived高可用集群 Keepalived概述 功能 LVS规则管理LVS集群真实服务器状态监测管理VIP Keepalived实现web高可用 安装keepalived软件 在webservers上配置 启动服务 webservers systemctl start keepalived.service ip a s | grep 192.168 #web1主机绑定vip 测试…