【TI C2000】F28002x的系統延時、GPIO配置及SCI(UART)串口發送、接收

【TI C2000】F28002x的系統延時、GPIO配置及SCI(UART)串口發送、接收

文章目錄

  • 系統延時
  • GPIO配置
  • GPIO輸出
  • SCI配置
  • SCI發送、接收
  • 測試
  • 附錄:F28002x開發板上手、環境配置、燒錄及TMS320F280025C模板工程建立
    • F28002x敘述
    • 燒錄
    • SDK庫文件說明
    • 工程建立
      • 更方便的路徑導入
    • 調試

系統延時

在device.h中 有系統延時函數
該函數為微妙級延時:

#define DEVICE_DELAY_US(x) SysCtl_delay(((((long double)(x)) / (1000000.0L /  \(long double)DEVICE_SYSCLK_FREQ)) - 9.0L) / 5.0L)

所以可以包裝一層毫秒延時:

void delay_ms(uint32_t ms)
{while(ms--){DEVICE_DELAY_US(1000);}
}

GPIO配置

C2000的GPIO庫與常見的不同
取消了Pinmux設定 取而代之的是Pin Config
在使用GPIO時 需要用GPIO_setPinConfig函數進行設置
傳參位于pin_map.h 該頭文件只在配置函數中有效
如:

#define GPIO_31_GPIO31                  0x00081E00U
#define GPIO_31_CANA_TX                 0x00081E01U
#define GPIO_31_SPIB_SOMI               0x00081E03U
#define GPIO_31_OUTPUTXBAR8             0x00081E05U
#define GPIO_31_EQEP1_INDEX             0x00081E06U
#define GPIO_31_FSIRXA_D1               0x00081E09U
#define GPIO_31_EPWM1_B                 0x00081E0BU
#define GPIO_31_HIC_D10                 0x00081E0EU

其實就是取代了Pinmux功能

另外還要使用以下函數對其進行方向、功能、時鐘配置

GPIO_setDirectionMode
GPIO_setPadConfig
GPIO_setQualificationMode

第一個傳參為GPIO序號 第二個為選擇的功能

如果是復用功能的話 上面這兩種傳參都會在device.h中被定義好
如:

//
// SCI for USB-to-UART adapter on FTDI chip
//
#define DEVICE_GPIO_PIN_SCIRXDA     28U             // GPIO number for SCI RX
#define DEVICE_GPIO_PIN_SCITXDA     29U             // GPIO number for SCI TX
#define DEVICE_GPIO_CFG_SCIRXDA     GPIO_28_SCIA_RX // "pinConfig" for SCI RX
#define DEVICE_GPIO_CFG_SCITXDA     GPIO_29_SCIA_TX // "pinConfig" for SCI TX

另外 設置模擬模式則使用GPIO_setAnalogMode 設置采樣周期則使用GPIO_setQualificationPeriod 設置中斷則使用GPIO_setInterruptPin
后三個函數根據需求設置 前面四個函數配置為基本配置

方向配置就是輸入/輸出(如果配復用模式 如UART的TX功能 那么也要配置這個為輸出)

typedef enum
{GPIO_DIR_MODE_IN,                   //!< Pin is a GPIO inputGPIO_DIR_MODE_OUT                   //!< Pin is a GPIO output
} GPIO_Direction;

對于功能配置(推挽、開漏、上拉等等) 有以下:

#ifndef DOXYGEN_PDF_IGNORE
//*****************************************************************************
//
// Values that can be passed to GPIO_setPadConfig() as the pinType parameter
// and returned by GPIO_getPadConfig().
//
//*****************************************************************************
#define GPIO_PIN_TYPE_STD       0x0000U //!< Push-pull output or floating input
#define GPIO_PIN_TYPE_PULLUP    0x0001U //!< Pull-up enable for input
#define GPIO_PIN_TYPE_INVERT    0x0002U //!< Invert polarity on input
#define GPIO_PIN_TYPE_OD        0x0004U //!< Open-drain on output
#endif

對于時鐘配置 有以下四種:

typedef enum
{GPIO_QUAL_SYNC,                     //!< Synchronization to SYSCLKGPIO_QUAL_3SAMPLE,                  //!< Qualified with 3 samplesGPIO_QUAL_6SAMPLE,                  //!< Qualified with 6 samplesGPIO_QUAL_ASYNC                     //!< No synchronization
} GPIO_QualificationMode;

一般而言 時鐘就配置為GPIO_QUAL_ASYNC 即可 也就是異步
若配置為GPIO_QUAL_SYNC則會根據系統時鐘對齊

GPIO輸出

若配置為GPIO輸出的話 則用以下函數 如GPIO31和34 對應開發板上的LED4 LED5

    //GPIO 31 34 OutputGPIO_setPinConfig(GPIO_31_GPIO31);GPIO_setDirectionMode(31, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(31, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(31, GPIO_QUAL_ASYNC);GPIO_setPinConfig(GPIO_34_GPIO34);GPIO_setDirectionMode(34, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(34, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(34, GPIO_QUAL_ASYNC);

同樣 使用GPIO_writePinGPIO_setPortPins即可寫入輸出值 后者是一整個Port的輸出函數
如:

    GPIO_writePin(31,0);GPIO_writePin(34,1);

其中 Port只有三種:

typedef enum
{GPIO_PORT_A = 0,                    //!< GPIO port AGPIO_PORT_B = 1,                    //!< GPIO port BGPIO_PORT_H = 7                     //!< GPIO port H
} GPIO_Port;

使用GPIO_togglePin則切換電平高低

	    GPIO_togglePin(31);GPIO_togglePin(34);

SCI配置

SCI與UART基本一致 但是多了一個Address模式
在這里插入圖片描述

也就是多了一位地址位 該模式可以在SCI_setAddrMultiProcessorMode中開啟
若不開啟 就是普通模式
在這里插入圖片描述
在這里插入圖片描述
在使用時 可以直接當作UART來使用

在開發板上 默認使用的UART為SCIA的TX、RX 對應GPIO28、29
在這里插入圖片描述
配置SCI前 需要先配置GPIO基本配置

    //// GPIO28 is the SCI Rx pin.//GPIO_setPinConfig(DEVICE_GPIO_CFG_SCIRXDA);GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_DIR_MODE_IN);GPIO_setPadConfig(DEVICE_GPIO_PIN_SCIRXDA, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_QUAL_ASYNC);//// GPIO29 is the SCI Tx pin.//GPIO_setPinConfig(DEVICE_GPIO_CFG_SCITXDA);GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(DEVICE_GPIO_PIN_SCITXDA, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_QUAL_ASYNC);

這里就是把TX配置為輸出、RX配置為輸入 其他默認

外設配置很簡單調用SCI_setConfig函數配置波特率、時鐘、數據即可
然后通過SCI_enableModule打開相應模式
再將通道復位清空即可

    SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 115200, (SCI_CONFIG_WLEN_8 |SCI_CONFIG_STOP_ONE |SCI_CONFIG_PAR_NONE));SCI_enableModule(SCIA_BASE);SCI_enableTxModule(SCIA_BASE);SCI_enableRxModule(SCIA_BASE);SCI_resetChannels(SCIA_BASE);SCI_performSoftwareReset(SCIA_BASE);

SCI發送、接收

發送有好幾種方式 最常用的是SCI_writeCharArray

extern void
SCI_writeCharArray(uint32_t base, const uint16_t * const array,uint16_t length);

該方式為阻塞發送
對應阻塞接收為:

extern void
SCI_readCharArray(uint32_t base, const uint16_t * const array,uint16_t length);

測試

代碼如下:

/*** main.c*/
#include "device.h"
#include "driverlib.h"#include <stdint.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <math.h>//
// Globals
////
// Send data for SCI-A
//
uint16_t TX_Buf[2]={0xAA,0xBB};//
// Received data for SCI-A
//
uint16_t RX_Buf[2]={0xFF,0xFF};
//
// Function Prototypes
//
void Init_GPIO(void)
{//// GPIO28 is the SCI Rx pin.//GPIO_setPinConfig(DEVICE_GPIO_CFG_SCIRXDA);GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_DIR_MODE_IN);GPIO_setPadConfig(DEVICE_GPIO_PIN_SCIRXDA, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_QUAL_ASYNC);//// GPIO29 is the SCI Tx pin.//GPIO_setPinConfig(DEVICE_GPIO_CFG_SCITXDA);GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(DEVICE_GPIO_PIN_SCITXDA, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_QUAL_ASYNC);//GPIO 31 34 OutputGPIO_setPinConfig(GPIO_31_GPIO31);GPIO_setDirectionMode(31, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(31, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(31, GPIO_QUAL_ASYNC);GPIO_setPinConfig(GPIO_34_GPIO34);GPIO_setDirectionMode(34, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(34, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(34, GPIO_QUAL_ASYNC);GPIO_writePin(31,0);GPIO_writePin(34,1);
}void Init_SCI(void)
{SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 115200, (SCI_CONFIG_WLEN_8 |SCI_CONFIG_STOP_ONE |SCI_CONFIG_PAR_NONE));SCI_enableModule(SCIA_BASE);SCI_enableTxModule(SCIA_BASE);SCI_enableRxModule(SCIA_BASE);SCI_resetChannels(SCIA_BASE);SCI_performSoftwareReset(SCIA_BASE);
}void delay_ms(uint32_t ms)
{while(ms--){DEVICE_DELAY_US(1000);}
}int main(void)
{//// Initializes system control, device clock, and peripherals//Device_init();Device_initGPIO();Init_GPIO();Init_SCI();//// Initializes PIE and clear PIE registers. Disables CPU interrupts.// and clear all CPU interrupt flags.//Interrupt_initModule();//// Initialize the PIE vector table with pointers to the shell interrupt// Service Routines (ISR).//Interrupt_initVectorTable();//// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)//EINT;ERTM;delay_ms(10);SCI_writeCharArray(SCIA_BASE, TX_Buf, 2);while (1){delay_ms(500);GPIO_togglePin(31);GPIO_togglePin(34);SCI_readCharArray(SCIA_BASE, RX_Buf, 1);SCI_writeCharArray(SCIA_BASE, RX_Buf, 1);}}

配置好后運行
可以觀測到串口回環以及每次的LED反轉
在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述

附錄:F28002x開發板上手、環境配置、燒錄及TMS320F280025C模板工程建立

F28002x敘述

作為TI C28x架構的DSP 其屬于C2000系列
其開發板套件如 F28002x LaunchPad 電路板自帶XDS110 極大的方便了開發
在這里插入圖片描述
對于其環境開發外 除安裝IDE CCS外 還應安裝SDK C2000WARE、UniFlash等
在這里插入圖片描述
其中 紅框為必要安裝 藍框為可選安裝
Motor Control SDK (C2000WARE-MOTORCONTROL-SDK) 適用于各種三相電機控制應用,例如工業驅動器和伺服拓撲結構。Digital Power SDK (C2000WARE-DIGITALPOWER-SDK) 適用于開發針對各種交流/直流、直流/直流和直流/交流電源應用的數字電源系統。

F28002x連接PC后 需要安裝C2000WARE(或其他TI自帶XDS110驅動的SDK包)才能有XDS110驅動
在這里插入圖片描述
成功安裝后即可正常使用

燒錄

通過UniFlash即可進行擦除和燒錄
插上即可自動識別 通過XDS110進行操作
在這里插入圖片描述
擦除:
在這里插入圖片描述
在這里插入圖片描述

燒錄時 可選擇bin、out等文件 這極大的方便了開發
.out文件可以由CCS直接編譯而來 .bin文件則通過.out轉換而來
(TI的MMWave系列芯片就不能直接燒錄.out文件)
在這里插入圖片描述
在這里插入圖片描述
燒錄時 建議先擦除再燒錄
燒錄的地址、位置 由工程編譯后的.out文件決定

SDK庫文件說明

在建立工程前 確保安裝了C2000WARE
在C2000的SDK中 主要要用到這兩個文件夾:
在這里插入圖片描述
driverlib中存儲了必要的頭文件、lib文件(這里的文件可以不用拷貝)
在這里插入圖片描述
其中 CCS下面的Debug和Release文件夾 則有兩個不同的lib 分別在不同的情況下使用

device_support中則存放了cmd文件和SDK的頭文件
在這里插入圖片描述
分別位于common的cmd中和include中
其中 driverlib.hdevice.hdevice.c建議拷貝到工程中使用 即為庫函數開發包(上面的driverlib也可以拷 但是沒必要)
cmd文件在建立工程時會自動生成 但也可以根據需要拷貝其他文件或進行修改
這里常用的就是RAM_Link和Flash_Link
在這里插入圖片描述

另外 還應拷貝f28002x_codestartbranch.asm文件 即start文件
Flash和RAM的區別就是燒錄和運行的地址不同 如果要發布 則用Flash 如果只是調試 就用RAM
在這里插入圖片描述
這兩個cmd文件不能同時使用 可以根據工程配置Debug、Release來進行選擇
在這里插入圖片描述

如果要額外使用寄存器開發的話:
device_support下的headers文件夾則在寄存器開發中被使用
如果想通過寄存器(類似于標準庫)的方式開發 而非TI推薦的庫函數方式開發
則需要另外導入headers下的cmd和include
同樣可以根據需要替換或修改cmd文件
在這里插入圖片描述
如果要使用 則下面的頭文件和源文件都要拷貝
在這里插入圖片描述

工程建立

通過CCS進行工程建立
工程中額外加入device.h、device.c、driverlib.h和啟動asm文件:
在這里插入圖片描述
建立main.c并寫入以下代碼:

/*** main.c*/
#include "device.h"
#include "driverlib.h"#include <stdint.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <math.h>int main(void)
{//// Initializes system control, device clock, and peripherals//Device_init();Device_initGPIO();//// Initializes PIE and clear PIE registers. Disables CPU interrupts.// and clear all CPU interrupt flags.//Interrupt_initModule();//// Initialize the PIE vector table with pointers to the shell interrupt// Service Routines (ISR).//Interrupt_initVectorTable();//// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)//EINT;ERTM;DEVICE_DELAY_US(1000);while (1){}}

cmd文件可以使用生成自帶的文件 也可以在SDK中拷貝
在這里插入圖片描述
其中 工程屬性中 要選擇小端格式ELF
在這里插入圖片描述
并選擇rts2800_fpu32_eabi.lib支持庫文件
在頭文件中 導入SDK包的位置
在這里插入圖片描述

C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib\inc
C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib
${workspace_loc:/${ProjName}/Device}
${workspace_loc:/${ProjName}}
${PROJECT_ROOT}
${CG_TOOL_ROOT}/include

并在C2000 Link中導入lib文件和目錄
在這里插入圖片描述

rts2800_fpu32_eabi.lib
C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib\ccs\Debug\driverlib.lib${CG_TOOL_ROOT}/lib
C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib\ccs\Debug
${CG_TOOL_ROOT}/include

如果要為了方便 可以在這里添加變量
在這里插入圖片描述
建立好后編譯即可
在這里插入圖片描述

更方便的路徑導入

添加C2000Ware包后 更容易導入庫
在這里插入圖片描述

${COM_TI_C2000WARE_INCLUDE_PATH}
${COM_TI_C2000WARE_INSTALL_DIR}
${COM_TI_C2000WARE_INSTALL_DIR}/driverlib/f28002x/driverlib/inc
${COM_TI_C2000WARE_INSTALL_DIR}/driverlib/f28002x/driverlib
${workspace_loc:/${ProjName}/Device}
${workspace_loc:/${ProjName}}
${PROJECT_ROOT}
${CG_TOOL_ROOT}/include${COM_TI_C2000WARE_INSTALL_DIR}/driverlib/f28002x/driverlib/ccs/Debug/driverlib.lib${COM_TI_C2000WARE_INSTALL_DIR}/driverlib/f28002x/driverlib/ccs/Debug

調試

通過Load Program和XDS110下載后即可調試
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895747.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895747.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895747.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

親測有效!使用Ollama本地部署DeepSeekR1模型,指定目錄安裝并實現可視化聊天與接口調用

文章目錄 一、引言二、準備工作&#xff08;Ollama 工具介紹與下載&#xff09;2.1 Ollama介紹2.2 Ollama安裝 三、指定目錄安裝 DeepSeek R1四、Chatbox 可視化聊天搭建4.1 Chatbox下載安裝4.2 關聯 DeepSeek R1 與 Chatbox 的步驟 五、使用 Ollama 調用 DeepSeek 接口5.1 請求…

期權隱含波動率是什么意思?

財順小編本文主要介紹期權隱含波動率是什么意思&#xff1f;期權隱含波動率&#xff08;Implied Volatility&#xff09;是根據當前期權市場價格&#xff0c;利用期權定價模型&#xff08;如Black-Scholes模型&#xff09;推導出的關于合約標的理論上的價格波動率。它反映了市場…

Python 面向對象的三大特征

前言&#xff1a;本篇講解面向對象的三大特征&#xff08;封裝&#xff0c;繼承&#xff0c;多態&#xff09;&#xff0c;還有比較細致的&#xff08;類屬性類方法&#xff0c;靜態方法&#xff09;&#xff0c;分步驟講解&#xff0c;比較適合理清楚三大特征的思路 面向對象的…

Jmeter如何計算TPS

1.在jmeter中計算出接口請求的個數 1175 1172 1172 174 200 416 384 1174 5867 2.計算接口平均響應時間 計算每個接口的請求次數乘以平均響應時間&#xff0c;所有接口相加&#xff0c;然后除以所有接口的數量總和&#xff0c;得到接口的平均響應時間 (1175*18191172*…

github上文件過大無法推送問題

GitHub 對文件大小有限制&#xff0c;超過 100 MB 的文件無法直接推送到倉庫中。 解決思路&#xff1a; 使用 Git Large File Storage (Git LFS) 來管理大文件不上傳對應的大文件 使用Git LFS&#xff1a; 1. 安裝 Git LFS 首先&#xff0c;你需要安裝 Git LFS。可以按照以…

Httprint 指紋識別技術:網絡安全的關鍵洞察

引言 Http指紋識別現在已經成為應用程序安全中一個新興的話題&#xff0c;Http服務器和Http應用程序安全也已經成為網絡安全中的重要一部分。從網絡管理的立場來看&#xff0c;保持對各種web服務器的監視和追蹤使得Http指紋識別變的唾手可得&#xff0c;Http指紋識別可以使得信…

docker push鏡像到阿里云

阿里云賬號 阿里云-計算&#xff0c;為了無法計算的價值 開通個人鏡像容器 進入控制臺&#xff0c;試用容器 實例列表界面 點擊上圖中的個人&#xff0c;個人版特性 創建個人版&#xff1a; 個人版實例界面&#xff1a; 設置密碼 個人版實例&#xff1a; 創建鏡像倉庫 如上…

【C#零基礎從入門到精通】(二十六)——C#三大特征-多態詳解

【C#零基礎從入門到精通】(二十六)——C#三大特征-多態詳解 在 C# 中,多態是面向對象編程的重要特性之一,它允許不同的對象對同一消息做出不同的響應。多態可以分為靜態多態和動態多態,下面將詳細介紹它們以及各自包含的知識點。 多態概述 多態性使得代碼更加靈活、可擴展…

大模型與智能體:螺旋共生,繪就智能新藍圖

大模型與智能體&#xff1a;螺旋共生&#xff0c;繪就智能新藍圖 在人工智能的前沿領域&#xff0c;大模型與智能體宛如兩顆璀璨的星辰&#xff0c;以一種精妙的螺旋共生關系&#xff0c;重塑著智能世界的格局&#xff0c;深刻影響著我們生活與工作的方方面面。 大模型&#x…

第2章 信息技術發展(一)

2.1 信息技術及其發展 2.1.1 計算機軟硬件 計算機硬件(Computer Hardware)是指計算機系統中由電子、機械和光電元件等組成的各種物理裝置的總稱。 計算機軟件 (Computer Software)是指計算機系統中的程序及其文檔&#xff0c;程序是計算任務的處理對象和處理規則的描述; 文檔…

藍橋杯篇---超聲波距離測量頻率測量

文章目錄 簡介第一部分&#xff1a;超聲波的簡介工作原理1.發射超聲波2.接收反射波3.計算時間差4.計算距離 硬件連接1.Trig2.Echo 示例代碼代碼說明注意事項1.聲速2.延時精度3.硬件連接 第二部分&#xff1a;頻率測量簡介頻率測量原理1.信號輸入2.計數3.計算頻率 硬件連接示例代…

CentOS系統docker配置鏡像加速registry-mirrors,配置阿里云和道客

1.可用倉庫 1.1.阿里云 2022年之后的鏡像缺失&#xff08;因為被墻了&#xff09;&#xff0c;但是網速極快 https://g4f7bois.mirror.aliyuncs.com1.2.上海道客 持續更新&#xff0c;但是網速極慢 https://docker.m.daocloud.io2.CentOS配置腳本 注意順序。阿里云的放前…

DeepSeek24小時寫作機器人,持續創作高質量文案

內容創作已成為企業、自媒體和創作者的核心競爭力。面對海量的內容需求&#xff0c;人工創作效率低、成本高、質量參差不齊等問題日益凸顯。如何在有限時間內產出高質量內容&#xff1f;DeepSeek寫作機器人&#xff0c;一款24小時持續創作的智能工具&#xff0c;為企業和個人提…

【Elasticsearch】simple_query_string

Elasticsearch 的simple_query_string查詢是一種靈活且容錯性較強的查詢方式&#xff0c;它允許用戶通過簡單的語法構造查詢字符串&#xff0c;以實現對文檔的搜索。以下是關于simple_query_string查詢的詳細說明&#xff1a; 1.基本概念 simple_query_string查詢是一種基于字…

CPP集群聊天服務器開發實踐(五):nginx負載均衡配置

1 負載均衡器的原理與功能 單臺Chatserver可以容納大約兩萬臺客戶端同時在線聊天&#xff0c;為了提升并發量最直觀的辦法需要水平擴展服務器的數量&#xff0c;三臺服務器可以容納六萬左右的客戶端。 負載均衡器的作用&#xff1a; 把client的請求按照負載均衡算法分發到具體…

MYSQL中的性能調優方法

MySQL性能調優是數據庫管理的重要工作之一&#xff0c;目的是通過調整系統配置、優化查詢語句、合理設計數據庫架構等方法&#xff0c;提高數據庫的響應速度和處理能力。以下是常見的MySQL性能調優方法&#xff0c;結合具體的案例進行說明。 1. 優化查詢語句 查詢語句是數據庫…

【論文筆記】Transformer^2: 自適應大型語言模型

Code repo: https://github.com/SakanaAI/self-adaptive-llms 摘要 自適應大型語言模型&#xff08;LLMs&#xff09;旨在解決傳統微調方法的挑戰&#xff0c;這些方法通常計算密集且難以處理多樣化的任務。本文介紹了Transformer&#xff08;Transformer-Squared&#xff09;…

HTTP的“對話”邏輯:請求與響應如何構建數據橋梁?

一、前言 作為現代互聯網通信的基石&#xff0c;HTTP協議定義了客戶端與服務器之間的“對話規則”。每一次網頁加載、API調用或文件傳輸的背后&#xff0c;都離不開精心構造的HTTP請求與響應。請求中封裝了用戶的意圖——從請求方法、資源路徑到提交的數據&#xff1b;響應則承…

安裝 Docker Desktop 修改默認安裝目錄到指定目錄

Docker Desktop安裝目錄設置 Docker Desktop 默認安裝位置 &#xff08;C:\Program Files\Docker\Docker) 是這個 &#xff0c;導致系統盤占用過大&#xff0c;大概2G ; 那么如何安裝到其他磁盤呢&#xff1f; 根據docker desktop 官網 Docker Desktop install 我們可以看到&a…

基于實例詳解pytest鉤子pytest_generate_tests動態生成測試的全過程

關注開源優測不迷路 大數據測試過程、策略及挑戰 測試框架原理&#xff0c;構建成功的基石 在自動化測試工作之前&#xff0c;你應該知道的10條建議 在自動化測試中&#xff0c;重要的不是工具 作為一名軟件開發人員&#xff0c;你一定深知有效測試策略的重要性&#xff0c;尤其…