TC297的框图

4TC29x BootROM  内容

  1. 启动软件(简称SSW);
  2. 实现附加功能的软件模块(Bootstrap loader);
  3. 测试固件

4.1启动软件

启动软件是芯片复位后第一个执行的软件。

SSW在CPU0上执行——所有其他cpu在引导期间都保持在halt状态,由用户软件启动,其中如下:

1)BootROM中的SSW起始地址是CPU0的Program Counter寄存器的复位值。从这个位置获取一条指令,这是任何设备启动后执行的第一条指令。

-在此入口点之后,固件立即检查测试模式,如果选择测试模式,则执行跳转测试固件

2)最后一条SSW指令跳转到第一条用户代码指令。根据用户选择的启动配置,可以从不同的位置获取第一个用户指令

启动软件包含了初始化设备的过程,具体取决于以下一个或多个步骤:

1)先前存储在专用Flash位置的信息

2)专用寄存器/内存位置中特殊位/字段的当前状态

3)触发SSW执行的事件类型(最后一个重置事件)

4)应用于外部引脚的值(可选)

SSW还调用其他固件模块

4.1.1触发启动软件执行的事件

SSW的执行可以由不同的事件触发。SSW识别触发(重置)事件并采取(部分)不同的执行流。

4.1.1.1 冷启动上电(初始化)

这是在电源被切断后设备的初始通电,或者换句话说——产生这个复位事件的唯一方法是对先前未通电的设备施加电源。

SSW在此事件开始执行时的条件包括:

1)所有寄存器都处于初始(重置)状态

2)Flash处于重置状态,即不活动,不准备执行任何(读/擦除/程序)操作

3)ram的内容未定义

4)时钟系统处于初始状态

由于设备在开机时处于“完全初始”状态,在这种情况下,SSW流分别较长,并且与其他重置事件相比覆盖的活动数量最大。

4.1.1.2 系统复位

注意:从SSW的角度来看,系统复位的处理一般与“热上电”的处理相同。因此,在本章中进一步说明,当系统复位时——在热上电时应用相同的SSW处理,例外情况将被特别通知。

这个重置事件可以由不同的来源请求:

1)设备内部硬件-从模块像看门狗定时器和安全/内存控制逻辑

2)外部硬件-当主动信号被应用到定义的设备引脚时

3)软件-当定义的控制位分别安装在用户代码执行

对于大多数源,生成系统复位是软件可配置的特性。例外是PORST引脚,应用有源低电平产生系统复位,只有当供电电压在周围的时间窗内永久高于定义的水平-例如,设备在系统复位激活之前和期间持续供电。否则,当电源下降到某个水平以下时,立即启动电源。EVR模块支持所有这些功能。

系统复位后SSW开始执行的条件包括:

1)所有受这些重置类型影响的寄存器都处于初始状态

2)Flash处于重置状态,即不活动,不准备执行任何(读/擦除/程序)操作

3)ram的内容与触发系统复位前相同

4)时钟系统处于初始状态

4.1.1.3 应用程序重置

与系统重置类似,应用程序重置可以由不同的来源请求:

内部/外部硬件以及软件。对于所有的源,生成系统复位是一个由软件配置的特性。

当应用程序重置时,SSW执行开始的条件包括:

1)连接到这种重置类型的寄存器处于初始(重置)状态

2)Flash处于读模式

3)所有其他的——ram和环绕逻辑、时钟系统、系统复位下的寄存器——都不受此事件的影响。

在应用程序复位后,设备状态发生有限的变化,在这种情况下,SSW流量最短。

4.1.2启动时时钟系统

设备启动时时钟系统的状态取决于复位事件的类型:

  1. 上电和系统复位时-时钟系统处于初始状态,即:

  1. 在应用程序复位时钟系统不改变它的状态,因此,设备运行的频率和时钟源与复位前相同。

在相同的时钟系统状态下,第一个用户代码启动,除了开机时的Bootstrap Loader模式。

4.1.3在启动过程中重写RAM

上电和系统复位时的启动过程在CPU0 DSPR的开始部分最多可以覆盖8kbyte。

因此,应用软件不应该使用该区域来保存数据,这些数据必须通过热上电或系统复位来保存。

此外,如果该RAM在备用期间一直提供,SSW在从备用模式退出时对CPU0 DSPR执行特殊处理。

为了确保正确处理:

1)在冷上电复位时,SSW在CPU0_DSPR中从地址D000 ' 2000H开始的所谓的“保留区域”中存储16个单词(总共64字节)信息

2)如果应用程序希望在备用模式下保持CPU0 DSPR的供应并保存信息:

——在进入待机模式之前,用户代码必须执行第4.5章描述的CPU0 DSPR准备

——除非在进入待机模式前执行准备程序,否则用户代码不能在D000 ' 2000H-D000 ' 203FH接触预留区域内的数据(见上)

4.1.4 Boot Options Summary引导选项总结

概述TC29x在用户模式下的启动配置。

内部开始

在这种基本启动模式下,第一个用户指令是从设备的Internal Program Flash中的地址A000 0020H获取的。

Bootloader Modes引导装载程序模式

在这些模式中使用不同的Bootstrap Loader例程将代码/数据下载到CPU0 (CPU0_PSPR)的程序暂存RAM中,如下所示:

支持的Bootloader选择是:

1)ASC Bootloader -通过ASC引脚的ASC通信协议

2)通过CAN引脚的通用引导装载程序-通信协议由SSW在ASC和CAN之间自动选择

在下载(以防)代码后,用户开始地址STADD被设置为程序Scratchpad RAM PSPR在C000 0000H的开始。

Alternate Boot Modes 备用引导模式

在这些模式中,程序代码从用户定义的地址开始,但只有在满足所有定义的检查条件时才开始。否则,可以进入Bootstrap Loader模式将代码下载到设备中,该代码随后由SSW启动。SSW处理ABM启动模式所需的所有信息都被收集到所谓的启动模式报头(BMHD)中。检查按照4.1.5章中定义的启动模式选择流程进行。

如果选择此模式,并且代码检查通过—用户开始地址STADD设置为从启动模式头部(BMHDn.STADABM)的相应值。

4.1.5 Start-up mode selection启动方式选择

TC29x启动模式选择流程如图4-1所示。

在TC29x中选择启动配置只有一种方法:

  1. 根据启动模式索引(BMI)配置——根据从Flash中特定位置获取的值(Aurix产品的新功能)

此外,作为bmi配置流程的一个选项,支持从以前的设备进行的众所周知的程序:

  1. 硬件配置-根据配置引脚的值

TC29x中启动配置的评估流程如下:

  1. 如果错误发生在Flash爬升或Flash配置扇区损坏(不可恢复的数据错误)- SSW立即终止;
  2. SSW依次评估多达4个启动模式报头BMHD0 - BMHD3 -报头位置参见表4-2,评估程序-见下面和图4-2

a) 如果使用OK -有效的BMI和(在情况下)代码退出评估过程,则采取相应的启动模式

b) 如果用FAIL退出了评估过程-继续步骤3。

  1. 检查最后一个Boot Mode Header是否有效,从引脚启用配置,引脚正在选择ABM,代码检查失败。

a) 如果是-根据HWCFG引脚处的值(参见表4-3),将STSTATHWCFG从ABM重新安装到BSL-Generic或ASC,并采取相应的启动方式

4、检查条件(HSM boot disabled)和(boot Mode Lock not activated)是否为true:

a) 如果是,则初始化安全相关的ram,然后检查任调试器是否连接,并请求重置后暂停(OSTATE.HARR=1)

——如果是-执行内部启动模式- CPU0将在第一个用户指令之前停止。

——如果没有-执行Generic Bootstrap Loader模式-如果没有有效的BMI,则执行默认模式。

b) 如果没有-检查并在情况下启用调试访问使用一般的评估序列,然后进入无限循环- HSM或外部调试器(如果批准访问)能够进一步处理设备启动

注意:必须考虑到,此时启动过程中Flash erase & program函数未启用(FLASH0_FPRO ENPE bitfield)。

BMHD的结构如表4-1所示。评估一个BMHD的过程包括以下步骤(参考图4-2)

1、检查Boot Mode Header ID是否正确

2、计算ABM报头的前24字节的CRC(参见表4-1)-在偏移00H - 17H处处理字段STADABM - CRCRange

3、检查BMI[15:10, 7:0]值是否有效-请参考4.1.5.2章节

  1. 检查状态BMI[3]=0 (pin-configuration enabled)和HWCFG[3] pin value=0 (pin-configuration selected)和(Boot Mode Lock not activated):

6、计算内存地址范围内的CRC

7、退出此过程,当前启动模式头无效,没有选择启动模式

4.1.5.1 Hardware configuration硬件配置

TC29x中配置引脚HWCFG[5:4]的启动方式选择如表4-3所示。这些引脚上的值被硬件锁存在任何复位(deactivation - rising edge)到寄存器中,该寄存器在启动过程中被SSW读取和评估

4.1.5.2 Configuration by Boot Mode Index (BMI) 通过启动模式索引(BMI)配置

启动模式索引(BMI)是2字节值,包含关于设备启动模式和Lockstep模式使能/使能的信息。

注意:启动模式选择在BMI中定义为“保留”。HWCFG被SSW视为无效

4.1.6 Startup Software Main Flow 启动软件主流程

下面概述了不同执行步骤(参见图4-3)和不同配置设置期间的SSW功能。

4.1.6.1 Basic Device Settings 基本的设备设置

这个功能模块的目标是用这些值初始化几个tc29x寄存器,这些值将在退出SSW后首次被用户看到(或通常可用)

4.1.6.2 RAMs Handling内存处理

在TC29x的启动软件上电后,只有HSM RAM被初始化

对于其他ram,冷上电和/或热上电时的初始化是用户在FLASH0_PROCOND中可配置的(参见4.1.5.2章)。

4.1.6.3 Select and Prepare Startup Modes 选择并准备启动模式

TC29x用户启动配置和模式总结在4.1.4章,选择流程参见4.1.5章。

安全启动选项处理

如果用户可以使用HSM模块(根据设备配置)-支持安全启动,其中用户代码由HSM处理。

SSW提供关于当前设备模式、复位类型、选择的主启动模式和有效采取的启动模式的信息,这些信息可用于HSM模块执行相应的启动和用户代码处理。

4.1.6.4 Final Chip Settings 最后芯片设置

SSW执行的最后设备配置步骤包括:

Flash access handling  Flash访问处理

这里的SSW流量包括:

•获取(代码/数据,从程序/数据/HSM Flash)控制

-如果用户代码将从内部flash启动-所有读取都启用

- otherwise -根据保护(active/not)状态

•启用程序和擦除操作

No handling of Unique Chip ID and Calibration data不处理唯一芯片ID和校准数据

该信息(唯一芯片ID和校准数据)现在存储在用户配置块中,用户可读。因此,它不再像在AUDO系列产品中那样安装到DSPR中,而是可以直接由应用软件读取。

Debug System handling调试系统处理

1、作为此处理的第一点,如果将根据以下评估顺序启用设备的调试访问,则设置SSW内部标志Unlock Debug Interface:

SSW通过将已定义的内容(对于TC29x 32位值CMD_KEY_EXCHANGE=76D6E24AH)写入COMDATA寄存器来检查外部工具是否请求调试访问

A)如果是-继续下一步

B)如果不是-转到步骤4。

2、仍然处于Cerberus通信模式,SSW确认收到请求,并通过COMDATA寄存器进一步接收8个单词

3、接收到的数据(256位)由SSW发送到PMU作为调试接口密码进行检查,结果由SSW评估:

a)如果“OK - debug password is correct”,请执行步骤6。

b)如果失败-继续下一步

4、安装到COMDATA的32位值,用于外部工具识别连接的设备- UNIQUE_CHIP_ID_32BIT

5、检查Flash读保护是否激活:

a)如果是-调试接口将被锁定,没有调试访问设备,退出序列

b)如果没有设置SSW内部标志,调试接口将被解锁,退出序列

注意:根据DFlash UCB内容,在启动过程中安装PROCONDBG-DBGIFLCK位,可以阻止接口解锁。

下面介绍的步骤是为了支持所谓的“调试自毁入口”功能。目标是,如果这个特性被激活,并且通过正确的调试密码请求调试(参见上面的步骤1 - 3),在有效地授予调试访问权限之前,破坏设备的重要功能(以便它在实际应用程序中不再可用)。

执行的步骤如下:

6、检查设备是否激活了" Debug Self-destructive Entry "特性(PROCONHSMOTP.DESTDBG=11B):

a)如果是-继续下一步

b)如果没有-调试权限,转到步骤5b。

7、使用PMU命令序列,用之前的密码擦除并重新编程UCB_DBG,但在PROCONDBG中设置“进入调试模式”标记(EDM=11B);然后转到步骤5.b) -授予调试访问权

接下来,如果请求,准备在Reset后暂停。这里的SSW处理如下:

•检查是否允许外部(调试)访问设备

—否—>退出本步骤

•检查是否要求重启后停止

—否—>退出本步骤

•在最后一条SSW指令中配置一个Make后中断断点

•启用“片上调试支持系统”。

注意:最终的调试相关操作——解锁(在情况下)调试接口——将在稍后执行。

ESR0 pin handling (ESR 0pin处理)

  1. ESR0CNT<>FFFH在FLASH0_PROCOND(参见4.1.5.2章的寄存器描述)和
  2. ESR0-pin配置在SSW入口是开漏复位输出(SCU_IOCR。PC0 in [1110B, 1010B])

若上述两项条件均符合,SSW将:

•释放ESR0引脚-通过安装SCU_ESROCFG - ARC:=1,清除SCU_ESROCFG - ARI中的应用程序复位指示器,在设备内部复位被释放(即CPU0启动)后会有一些延迟,延迟定义如下

——如果FLASH0_PROCOND。ESR0CNT=000H -冷上电时大约500µs,其他时间不超过20µs

——如果FLASH0_PROCOND.ESR0CNT = 001 h……(FFEH) - ESR0CNT * 10µ秒

•等待直到ESR0引脚有效高-由SCU_IN-P0=1指示-在非常SSW端和跳转到第一个用户指令之前

为了在设备复位释放后生成可配置的ESR0延迟,SSW使用了System Timer 0 (STM0),特别考虑了以下开机/系统复位后的默认设置:

•STM被重置并开始从零开始计数

•STM以50MHz为时钟,即fSTM=FBACK/2

注意:如果在poweron/系统重置后执行的用户代码改变了默认设置,则上述两个条件在应用程序重置后都不成立。在这种情况下,SSW的ESR0处理将不能正常工作,这意味着实际的延长将不对应配置的ESR0CNT值。

Lockstep configuration同步配置

在冷上电时,SSW只执行Lockstep配置,如下所示:

•如果在启动模式评估中发现有效的BMI:

- CPU1的Lockstep控制从BMI[9]安装在LCLCON1-LSEN中

4.1.6.5 Ending the SSW and Starting the User Code 结束SSW并启动用户码

SSW执行的最后步骤是:

•解锁(以防)调试接口

•跳转到地址STADD的第一个用户指令。

此外,如果满足以下所有条件:

•设备为ED

•允许对设备进行调试访问

•不要求重启后暂停

•最后一次复位是开机(冷或热)

SSW在它的最后执行额外的检查,如果所有这些成功-最后的SSW指令不是跳到“标准的”STADD,而是跳到EMEM(仿真内存)内的一个地址。该SSW部分实现了TC29x ED目标规范“在EMEM中使用prolog代码启动”章节中定义的序列。

4.2 Bootstrap Loaders 引导加载器

这些例程提供了一些机制,通过将代码移动到PMI Scratchpad RAM(一种内部程序内存)中,通过选定的接口加载用户程序。退出BootROM后会启动加载的代码

注意:一旦进入Bootstrap Loader模式,所选的通信协议(CAN/ASC)必须完全按照其定义执行,直到用户代码下载到设备中。没有超时将永远中断这个过程,但只有复位才能重新启动设备。

4.2.1 ASC Bootstrap loader ASC引导加载程序

ASC Bootloading例程实现以下步骤:

1、RxD / TxD别针配置是按照TC29x完成的定义,以及不同的例程调用在“ASC引导装载程序”启动模式(使用ASC-only别针)或在ASC-protocol检测在“通用引导装载程序”模式(可以使用/ ASC-shared针但配置为ASC模块)

2、波特率的计算是基于主机发送的零字节

3、ASCLIN通道n(参见表4-4)初始化(不启用接收器)为确定的波特率,8个数据和1个停止位。

4、确认字节D5H被发送到主机,表示设备已准备好接受数据传输

5、发送确认字节后,启用接收方

6、引导加载程序进入一个循环,等待接收确切的128字节,这些字节以32个字的形式存储在CPU0程序暂存RAM中,起始地址为C000 0000H

一旦接收到128字节,SSW将继续执行-参见图4-3。退出SSW后,将从地址C000 0000H (CPU0_PSPR)启动用户代码。

4.2.2 CAN Bootstrap Loader  CAN引导加载程序

CAN引导加载程序通过MultiCAN模块的节点n(参见表4-4)将程序代码/数据传输到CPU0程序暂存RAM中。

CAN Bootstrap Loader使用8字节的数据帧将数据从外部主机传输到TC29x。要接收的数据帧的数量是可编程的,并由16位数据消息计数值DMSGC确定。

注意:当在上电或系统复位时选择时,CAN Bootstrap Loader要求外部时钟源/振荡器连接到设备的XTAL引脚。

TC29x与外部主机通信基于以下三种CAN标准帧:

•初始化帧——由外部主机发送到TC29x

•确认帧——由TC29x发送到外部主机

•数据帧——由外部主机发送到TC29x

初始化帧用于TC29x的波特率检测。通过发送确认帧向外部主机报告波特率检测成功后,使用数据帧进行数据传输。

Initialization Phase 初始化阶段

第一个任务是确定外部主机通信时的CAN波特率。该任务需要外部主机连续向TC29x发送初始化帧。初始化帧的前两个数据字节包括2字节波特率检测模式(5555H)、确认帧的11位(2字节)标识符ACKID、16位数据消息计数值DMSGC和数据帧使用的11位(2字节)标识符DMSGID。

通过分析接收到的波特率检测模式(5555H)确定CAN波特率,并设置MultiCAN模块的波特率寄存器。TC29x现在可以接收外部主机波特率的CAN帧了。

Acknowledge Phase 确认阶段

在确认阶段,引导加载程序等待,直到它从外部主机接收到下一个正确识别的初始化帧,并通过在其ACK槽中生成一个主位来确认该帧。然后,引导加载程序将一个确认帧发送回外部主机,表明它现在已经准备好接收数据帧了。确认帧使用与初始化帧一起接收到的消息标识符ACKID。

Data Transmission Phase 数据传输阶段

在数据传输阶段,数据帧由外部主机发送,TC29x接收。数据帧使用与初始化帧一起发送的11位数据消息标识符DMSGID。每个数据帧传输8个数据字节。第一个数据字节存储在程序暂存RAM中,起始地址为C000 0000H。连续的数据字节存储在递增的地址中。

在请求的CAN数据帧数被传输之前,通信伙伴都评估DMSGC的数据消息计数。

接收到最后一个CAN数据帧后,SSW继续执行,如图4-1所示。退出SSW后,将从地址C000 0000H(CPU0_PSPR)启动用户代码。

4.2.3 Summary of Bootstrap Loader Modes Bootstrap Loader模式总结)

该表总结了TC29x中引导加载器模式的外部硬件配置。

4.3 Shutdown request handler 关机请求处理程序

在任何热复位请求时,TC29x中的所有活动cpu都无条件跳转到该处理器的入口点-参考SCU ITS中的reset Control Unit章节。

它是由硬件保证的,这个处理器不能被任何其他(中断/陷阱)请求中断,在它的末端,所有的cpu都处于稳定的被动状态,通过一个受控的缓降序列达到,防止了大电流跳变。

在它的入口点(对所有CPU都是通用的),固件会导致任何正在运行的CPU进一步跳转到它自己的处理器。为了这个目的,读取CORE_ID寄存器,因为这个寄存器的值对任何CPU都是单独的-当CORE_ID= 0,1或2时,固件跳到相应CPU的例程。

4.4 Power Supply Friendly Debug Monitor 电源调试监控

TC29x BootROM包含一个名为Power Supply Friendly Debug Monitor (PSFDM)的例程。本例程的目的是最小化当多个CPU被OCDS停止时,由于电流突然下降而导致EVR电压过冲/过冲的风险,分别在CPU从停止状态释放时电流达到峰值。PSFDM例程是BootROM内部的一个“独立/独立”模块,在设备启动时不会执行。它的目的是被cpu用作调试容器处理程序,而不是停止。这意味着调试器必须正确配置调试trap向量——它应该指向地址AFFF C020H(在BootROM内部)。

在调试事件中,所有配置的cpu启动PSFDM执行时都会触发trap,然后如果需要,工具可以单独停止它们。

PSFDM例程包含一个“repeat action until condition”循环,然而:

要继续执行用户代码,调试器必须:

•从暂停的cpu中释放-这样所有的cpu都运行PSFDM作为调试陷阱处理器

•激活OTGS触发器第2行-所有cpu退出PSFDM(通过RTE),并继续用户代码执行

最后,在调试trap之后,cpu会并行地重新启动,但个别CBS_TLS——TL2轮询会导致一些周期空闲。

4.4.1 PSFDM code with inverse exit condition 逆退出条件PSFDM代码

在启动于AFFF FC80H的BootROM中实现了上述相同的程序,但有一点不同:

•退出循环的条件是CBS_TLSTL2=0,这意味着OTGS触发器第2行被取消激活——即这里的退出条件与上面的相反

4.5 Preparation before to enter Stand-by mode 进入待机模式前的准备

在准备待机模式时,用户软件必须做以下工作:

•从CPU0_DSPR的“保留区域”中顺序读取16个单词,起始地址为D000 ' 2000H

•对于任何单词检查,它要么等于FFFF FFFFH,要么等于零

—如果是—跳过,进入下一个保留位置

——如果没有

-使用这个单词作为32位地址,从该地址读取数据,并将该数据存储回相同的保留位置

-转到下一个预留位置

4、TC29x BootROM 内容相关推荐

  1. 【soc】bootrom注意事项

    [soc]bootrom注意事项 一.关于-异常 bootrom程序是要被固话进芯片的,固化之后不可被更改.关于bootrom的具体要干什么,这里不做描述(可以百度,不同soc,bootrom内容可能 ...

  2. linux华为路由器模拟器,华为路由器模拟器与实验内容.doc

    华为路由器模拟器与实验内容 华为的路由器模拟器及实验内容?? 2009-12-21 20:27:53|??分类: HYPERLINK "/ah..zhangrui/blog/" \ ...

  3. FPGA - Zynq - 加载 - BootRom

    FPGA - Zynq - 加载 - BootROM 题外话 BootROM BootROM Header Definition BootROM Header Searching and Loadin ...

  4. VxWorks学习笔记一 ------Bootrom和VxWorks镜像的引导

    概述 VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS).它以其良好的可靠性和卓越的实时性被广泛地应用在通信.军事.航空.航天等高精尖技术及实时 ...

  5. VxWorks在zynq7020上bootrom

    VxWorks在zynq7020上的bootrom 环境 步骤 1 .获取bootgen工具 2. 获取First Stage BootLoader(FSBL) elf文件 3..创建bootrom. ...

  6. 基于codewarrior10.x的VxWorks bootrom调试 DDR3 SDRAM调试

    前段时间开发新板卡p2020,正好趁着这个机会把codewarrior10.x熟悉一下,并完成bootrom的调试过程. 过程也没遇到什么阻碍,就是修改了一下 flash,然后启动板子.正常启动了,只 ...

  7. bootrom的类型

    bootrom有三种类型:ROM_RESIDENT.UMCOMPRESS和COMPRESS.第一种是一直运行在rom中的映象,只把data段拷贝到ram里面:第二种是非压缩方式的映象,data段和te ...

  8. 【IMX6ULL bootrom对nandflash支持分析】

    读者应当具备一些nand flash基础知识. 首先bootrom会配置一个safe NAND timings(这个最开始的safe timing在ONFI文档中有介绍,简单来说就是nand flas ...

  9. 1525_AURIX TC275 BootROM上

    全部学习汇总: GitHub - GreyZhang/g_TC275: happy hacking for TC275! 这一次看一个全新的章节,BootROM,这是我之前只听过但是没有接触过的一个功 ...

最新文章

  1. 资源 | 2018年值得关注的200场机器学习会议(建议收藏)
  2. SQL操作的组成部分-数据查询
  3. 分享一个ASP.NET 文件压缩解压类 C#
  4. 8.6 多元高斯分布模型-机器学习笔记-斯坦福吴恩达教授
  5. HTML: 字體設置
  6. js逻辑训练题_二建冲刺必刷300题!精选历年真题+母子题+模考易错题!
  7. 嵌入式操作系统 NuttX 5.0 发布
  8. centos7全盘备份到本地_CentOS7下制作openssl1.1.1i RPM包并升级
  9. [转载] 1.1Java使用JDBC原生方式连接MySql数据库
  10. Mysql权限控制 - 允许用户远程连接
  11. Hotpatching a C Function on x86
  12. 【Software】动软代码生成器
  13. 移动设备如何当作FL Studio中的MIDI控制器(下)
  14. 第三次科技革命(一)
  15. 灵敏性,特异性,阳性预测值,阴性预测值
  16. vba模拟鼠标点击_这些掌握了,你才敢说自己懂VBA
  17. STM32独立按键实现单击双击长按功能
  18. easyui Datagrid+searchbox 实现搜索功能
  19. JavaScript加密/解密与OpenAI的对接:生成加密对话的ChatGPT 4.0应用
  20. [WARNING] fpm_children_bury()

热门文章

  1. 师兄教你和面试官扯淡
  2. EOF和NULL的区别
  3. ISO9001内审员试卷(转载)
  4. 瑞友天翼应用虚拟化系统存在远程代码执行漏洞
  5. 思普linux安装教程,思普操作系统下载
  6. JavaStudy11(22章-多用户即时通信系统qq)—B站韩顺平
  7. Docker - 本地镜像的导出、导入(export、import、save、load)
  8. 重装系统后出现0xc000000e解决办法
  9. mysql 3306 不通_3306端口不通,不一定是网络的问题
  10. 【分享】Quora使用到的技术