📄 ctcaldat.c
字号:
/*
Copyright (C) 1999 Optimay GmbH. All Rights Reserved.
File: ct\trident\ctcaldat.c
Desc: Handling of most HW calibration data elements. The powerramps and
the Rf gain calibration table are handeld in a separate file.
Author: Sunna Darcy, Optimay GmbH
Date: April 2000
Notes:
$Source base\ct\ctcaldat.c (Clearcase Element) $
$Log: $
* MKNICKER 9. Nov. 2004 15:52:29 RB: rb_gsmms2, IB: REL_MGMT_025, PB: MKN_00174__a, Rev: 2
* -> OCR00007339 PSC ADC state machine broken
* remove obsolete PSC version dependency because ADC state machine is designed to operate on a hardware abstraction layer for many PSC versions
* Defines for PSC variants and ADC state machine mixed up
*
* BRANDSMA 22. Jul. 2004 18:13:20 RB: rb_gsmms2, IB: MAINT_024, PB: BRA000068, Rev: 1
* -> OCR00007628 PTE commands 慡etRFConfigCal?and 慙1RFConfig? don't work
* -> OCR00007549 ContTxOnAllSlots doesn't configure ramp data for TS1
*
* JUNG 13. Jul. 2004 16:13:14 RB: rb_gsmms2, IB: MAINT_024, PB: jun00004, Rev: 1
* -> OCR00007558 problems in new PTE cmd for renesas RF
*
* IMANYA 23. Jun. 2004 16:26:24 RB: rb_gsmms2, IB: MAINT_024, PB: ima00031, Rev: 1
* -> OCR00007322 GenDLScript PTE cmd doesn't cover 8psk calibration data
* -> OCR00007317 PTE to support calibration of RX - TX frequency offset
* -> OCR00007316 new PTE command to store parameters for RFConfig command
*
* BRANDSMA 9. Jun. 2004 13:42:01 RB: rb_gsmms2, IB: REL_MGMT_024, PB: BRA000055, Rev: 1
* -> OCR00007322 GenDLScript PTE cmd doesn't cover 8psk calibration data
* -> OCR00007317 PTE to support calibration of RX - TX frequency offset
* -> OCR00007316 new PTE command to store parameters for RFConfig command
*
* IMANYA 25. May. 2004 20:08:11 RB: rb_gsmms2, IB: MAINT_024, PB: ima00026, Rev: 1
* -> OCR00006928 PTE, Dual TX ramp data for GMSK and 8PSK each
*
* BRANDSMA 8. Apr. 2004 14:19:01 RB: rb_gsmms2, IB: REL_MGMT_024, PB: SJB000045, Rev: 1
* -> OCR00006928 PTE, Dual TX ramp data for GMSK and 8PSK each
*
* JVIAENE 19. Feb. 2004 13:21:30 RB: rb_gsmms2, IB: REL_MGMT_023C, PB: jvi040216_rel23c, Rev: 2
* -> OCR00006568 PSC drivers clean-up
*
* JVIAENE 11. Feb. 2004 20:37:28 RB: rb_gsmms2, IB: REL_MGMT_023C, PB: jvi040204_rel23c__c, Rev: 1
* -> OCR00006457 Battery management on Vienna
*
* BRANDSMA 28. Jan. 2004 19:12:45 RB: rb_gsmms2, IB: REL_MGMT_023C, PB: SJB00026, Rev: 1
* -> OCR00006385 Restructure Vienna build to allow for placing platform/HW-specific files in local folders
*
* BRANDSMA 23. Jan. 2004 16:39:54 RB: rb_gsmms2, IB: REL_MGMT_023C, PB: SJB00024, Rev: 2
* -> OCR00006342 MARS Radio, RF Calibration and AFC implementation changes
*
* JVIAENE 27. Okt. 2003 19:05:02 RB: rb_gsmms2, IB: REL_MGMT_023B, PB: EHO00073, Rev: 2
* -> OCR00005685 remove lint warnings in the EDGE-SI build
*
* JVIAENE 21. Okt. 2003 12:23:46 RB: rb_gsmms2, IB: REL_MGMT_023B, PB: jvi031020_rel23b, Rev: 1
* -> OCR00005088 SW Support for Gemini Rev B
* Changed defines with CSP2200A to defines with CSP2200
*
* PGREATHEAD 8. Okt. 2003 16:58:18 RB: rb_gsmms2, IB: EDGE_DVL2, PB: PGR378, Rev: 1
* -> OCR00005156 Master OCR for Rel99 monitoring changes
*
* FRUEHWALD 15. Sep. 2003 16:28:56 RB: rb_gsmms2, IB: EDGE_DVL2, PB: ffr010903_edge__b, Rev: 1
* -> OCR00005457 Integration of custt3 MMI to baseline
* PLL cal table is no longer needed, remove/diable the resp. code therefore
*
* HSCHIESSL 1. Sep. 2003 19:11:11 RB: rb_gsmms2, IB: REL_MGMT_022, PB: HSC00099, Rev: 1
* -> OCR00005387 Separate Rel99 Measurement builds plus separation support tasks.
*
* HAIWANG 21. Aug. 2003 17:38:47 RB: rb_gsmms2, IB: REL_MGMT_022, PB: HAI00222, Rev: 2
* -> OCR00005195 First call on HP evaluation board and prepare customer HP sub builder in baseline
*
* MKIESSLING 14. Aug. 2003 14:29:42 RB: rb_gsmms2, IB: REL_MGMT_022, PB: mki00211, Rev: 2
* -> OCR00005195 First call on HP evaluation board and prepare customer HP sub builder in baseline
*
* MKIESSLING 31. Jul. 2003 10:05:22 RB: rb_gsmms2, IB: REL_MGMT_022, PB: mki00211, Rev: 1
* Remove RVCT compiler warning according string handling
*
* HAIWANG 20. May. 2003 11:11:01 RB: rb_gsmms2, IB: REL_MGMT_021, PB: HAI00214, Rev: 5
* -> OCR00004661 Change the calibration structure to match EDGE RF and add new PTE command
*
* JVIAENE 20. May. 2003 11:23:15 RB: rb_gsmms2, IB: REL_MGMT_021, PB: jvi00061, Rev: 1
* -> OCR00004501 Florence / Gemini changes - Phase II
*
* EHIRSCH 11. Apr. 2003 17:11:37 RB: rb_gsmms2, IB: REL_MGMT_021, PB: ech000403, Rev: 1
* -> OCR00004403 Custt Edge Platform Modifications
*
* JVIAENE 26. Feb. 2003 17:41:53 RB: rb_gsmms2, IB: REL_MGMT_020, PB: jvi00051, Rev: 1
* -> OCR00003794 PTE, GENDSCRIPT and LISTCALDATA command cleanup for Nice
*
* WSCHODERER 24. Feb. 2003 18:00:53 RB: rb_gsmms2, IB: REL_MGMT_020, PB: wos002011, Rev: 2
* -> OCR00003992 baseline restructuring for HW platform specific code
*
* JVIAENE 3. Feb. 2003 15:11:19 RB: rb_gsmms2, IB: REL_MGMT_020, PB: jvi00046, Rev: 1
* -> OCR00003789 PTE, Nice, Need new PTE/DSP commands to send AFCDAC settings
*
* MKIESSLING 23. Jan. 2003 17:27:22 RB: rb_gsmms2, IB: REL_MGMT_020, PB: mki00171__b, Rev: 2
* -> OCR00003872 PTE, CTEnableDSPDCROffset( ) sends garbage response string
*
* JVIAENE 21. Jan. 2003 14:22:12 RB: rb_gsmms2, IB: REL_MGMT_020, PB: jvi00043, Rev: 2
* -> OCR00003795 PTE, Add command alias
*
* MKIESSLING 17. Jan. 2003 13:44:05 RB: rb_gsmms2, IB: REL_MGMT_020, PB: mki00171__a, Rev: 1
* -> OCR00003527 PTE, Add general purpose DSP Peek/Poke wrapper
*
* KTUCHMAN 8. Nov. 2002 15:42:44 RB: rb_gsmms2, IB: REL_MGMT_019, PB: ktu00174, Rev: 2
* -> OCR00003100 PTE, Add DSP RAM DCR offset calibration commands
*
* KTUCHMAN 7. Nov. 2002 14:12:21 RB: rb_gsmms2, IB: REL_MGMT_019, PB: ktu00174, Rev: 1
* -> OCR00003469 PTE, CDAC value is incorrect. Automated testing on Nice not possible.
*
* FRUEHWALD 23. Sep. 2002 14:24:19 RB: rb_gsmms2, IB: REL_MGMT_018, PB: ffr0902__a, Rev: 2
* -> OCR00003232 REL_MGMT_018_020903_IOTRACER killed a few lab-test PTE commands
*
* GRAEMEANDERSON 25. Aug. 2002 17:56:33 RB: rb_gsmms2, IB: REL_MGMT_018, PB: GAN00100, Rev: 1
* -> OCR00000975 PTE serial port throughput must be sped up.
* Optimise large PTE lisitings if using the IOTRACER feature
*
* GRAEMEANDERSON 6. Aug. 2002 9:10:42 RB: rb_gsmms2, IB: REL_MGMT_017, PB: GAN00096, Rev: 2
* -> OCR00000975 PTE serial port throughput must be sped up.
* Update delay calculation for callback fn showing full cal data function to be optimised for the IO TRACER.
*
* GRAEMEANDERSON 12. Jul. 2002 11:15:37 RB: rb_gsmms2, IB: REL_MGMT_017, PB: GAN00096, Rev: 1
* -> OCR00002038 Move tracing serial port interface to the IO Driver
*
* TSELIG 25. Jul. 2002 16:12:04 RB: rb_gsmms2, IB: REL_MGMT_017, PB: TSE00094__a, Rev: 1
* -> OCR00002923 PTE command dobattmess is causing a crash
*
* GRAEMEANDERSON 25. Jul. 2002 15:02:05 RB: rb_gsmms2, IB: REL_MGMT_017, PB: GAN00097__a, Rev: 1
* -> OCR00002923 PTE command dobattmess is causing a crash
* Fix bug in dobattmeas command
*
* GRAEMEANDERSON 12. Jun. 2002 11:26:39 RB: rb_gsmms2, IB: REL_MGMT_017, PB: GAN00095, Rev: 4
* -> OCR00001727 Remove Lint Warnings in Source Code
* Fix regtest warnings resulting from the big lint clean up
*
* GRAEMEANDERSON 11. Jun. 2002 9:55:34 RB: rb_gsmms2, IB: REL_MGMT_017, PB: GAN00095, Rev: 3
* -> OCR00001727 Remove Lint Warnings in Source Code
* ShowCalStruct reg test warning fix.
*
* GRAEMEANDERSON 10. Jun. 2002 21:22:40 RB: rb_gsmms2, IB: REL_MGMT_017, PB: GAN00095, Rev: 2
* Reg test warning fixes after extreme linting
*
* GRAEMEANDERSON 10. Jun. 2002 18:41:05 RB: rb_gsmms2, IB: REL_MGMT_017, PB: GAN00095, Rev: 1
* -> OCR00002634 Add DCR elements to PTE ShowCalData, GenDLScript and ShowDefCalData commands
* -> OCR00001727 Remove Lint Warnings in Source Code
* Add DCR offset elements to commands which display all cal data.
* Lint clean up
*
* MZOELLER 9. May. 2002 14:29:52 RB: rb_gsmms2, IB: REL_MGMT_016, PB: mzopb00019, Rev: 1
* -> OCR00002472 Add new config files for CUSTT integration
*
* GRAEMEANDERSON 11. Dec. 2001 14:52:08 RB: rb_gsmms2, IB: PBCCH_DVL, PB: GAN00080, Rev: 2
* -> OCR00001719 Implement PTE for S100 product
* Correct the type being used for number of ADC channels
*
* GRAEMEANDERSON 11. Dec. 2001 11:35:28 RB: rb_gsmms2, IB: PBCCH_DVL, PB: GAN00080, Rev: 1
* -> OCR00001719 Implement PTE for S100 product
* Update to remove redundant code and ifdefs.
*
* NGORIS 5. Dec. 2001 19:12:04 RB: rb_gsmms2, IB: PBCCH_DVL, PB: ngo00072, Rev: 1
* Merge from REL_12 to PBCCh.
*
* WSCHEIT 29. Nov. 2001 18:22:56 RB: rb_gsmms2, IB: PBCCH_DVL, PB: wsc00056, Rev: 1
* Integrated CUSTT1 into baseline
*
* ANOCK 29. Nov. 2001 16:45:25 RB: rb_gsmms2, IB: REL_MGMT_012, PB: ANO00087, Rev: 1
* Deleted unnecessary initialisation of a variable and one variable
* completely to avoid the BC warnings "assigned a value that is never used".
*
* GRAEMEANDERSON 27. Nov. 2001 11:37:36 RB: rb_gsmms2, IB: REL_MGMT_012, PB: GAN00075__b, Rev: 1
* Linted first pass for tidy up
*
* GRAEMEANDERSON 24. Okt. 2001 12:08:06 RB: rb_gsmms2, IB: REL_MGMT_011, PB: GAN00072__c, Rev: 1
* -> OCR00001458 Add RF DCR Offset calibration support to the Seville platform
* Add DCR offset calibration commands temporarily with CUSTB2. Need to move them to the custb2/ct/ctcust.c file directory if this turns out to be a long term solution (unlikely)
*
* GRAEMEANDERSON 17. Okt. 2001 16:00:31 RB: rb_gsmms2, IB: REL_MGMT_011, PB: GAN00072, Rev: 1
* -> OCR00001456 Restructure PTE to be cal structure generic
* Rewrite code which accesses the calibration data structure to make it generic and compatable to any user allocations of RF bands and ramps, etc.
*
* GRAEMEANDERSON 2. Okt. 2001 20:12:42 RB: rb_gsmms2, IB: REL_MGMT_011, PB: GAN00071, Rev: 1
* -> OCR00001282 Dynamically address sector0 PTE data to avoid clash with arm_init code
* Mod UseOldCalData fn due to changes for addressing cal data since location defined in arm.map file
*
* ANOCK 29. Aug. 2001 10:51:17 RB: rb_gsmms2, IB: REL_MGMT_010, PB: ANO00075, Rev: 2
* -> OCR00000605 Inconsistencies in UH source code (header file handling)
* Had to adapt several files, after having corrected the handling of UH header files.
*
* GRAEMEANDERSON 24. Aug. 2001 15:07:59 RB: rb_gsmms2, IB: REL_MGMT_010, PB: GAN00066, Rev: 2
* Remove warning in CtSetVersionString
*
* GRAEMEANDERSON 24. Aug. 2001 13:32:09 RB: rb_gsmms2, IB: REL_MGMT_010, PB: GAN00066, Rev: 1
* -> OCR00001150 PTE commands Show/SetCalDataVer and Show/StoreSec0CustomerData text versions
* Change compiler switch !TLC_PLATFORM to SECTOR0_CALIBRATION
* Added PTE functions CTSetVersionString and CTShowVersionText
* Improve UseOldCalData function
*
* ANOCK 10. Aug. 2001 19:18:09 RB: rb_gsmms2, IB: REL_MGMT_010, PB: ANO00072, Rev: 1
* Made the handling of the UH files correct and consistent again
* (both in the code itself and in comments).
*
* GRAEMEANDERSON 31. Jul. 2001 17:00:13 RB: rb_gsmms2, IB: REL_MGMT_010, PB: GAN00059, Rev: 1
* Reversed the logic of the checks on the SysStartData flags. Documented in the PTE command reference guide.
* Improved the display of ShowCalData command.
*
* GRAEMEANDERSON 18. Jul. 2001 14:28:25 RB: rb_gsmms2, IB: REL_MGMT_010, PB: GAN00055, Rev: 8
* Another reg test tweak
*
* GRAEMEANDERSON 18. Jul. 2001 13:27:29 RB: rb_gsmms2, IB: REL_MGMT_010, PB: GAN00055, Rev: 7
* Regtest cleanup before PB check in
*
* GRAEMEANDERSON 17. Jul. 2001 17:26:11 RB: rb_gsmms2, IB: REL_MGMT_010, PB: GAN00055, Rev: 6
* Clean up warnings and don't use dc_arm.h - set CT_BAND_* variables for the bands in Cttri.h instead
*
* GRAEMEANDERSON 17. Jul. 2001 14:07:36 RB: rb_gsmms2, IB: REL_MGMT_010, PB: GAN00055, Rev: 5
* Update display of calibration data command ShowCalData
*
* GRAEMEANDERSON 16. Jul. 2001 14:35:11 RB: rb_gsmms2, IB: REL_MGMT_010, PB: GAN00055, Rev: 4
* Add Preparefor IMEIBlackout prototype and corrected TLC PLATFORM ifdefs
*
* HAIWANG 3. Jul. 2001 10:25:25 RB: rb_gsmms2, IB: REL_MGMT_010, PB: HAI00094, Rev: 1
* Deleted the compiler switch TLC_PLATFORM
*
* ANOCK 20. Jun. 2001 16:15:46 RB: rb_gsmms2, IB: REL_MGMT_009, PB: ANO00067, Rev: 1
* Moved an #ifdef to the right place to avoid a compiler warning.
*
* GRAEMEANDERSON 13. Jun. 2001 15:33:54 RB: rb_gsmms2, IB: REL_MGMT_009, PB: GAN00053, Rev: 1
* Move sector 0 write security check into the PTE context
*
* GRAEMEANDERSON 27. Apr. 2001 10:46:07 RB: rb_gsmms2, IB: REL_MGMT_008, PB: GAN00047, Rev: 1
* Removed redundant commands
*
* MIKECRONIN 6. Apr. 2001 20:34:07 RB: rb_gsmms2, IB: REL_MGMT_007, PB: MC00028, Rev: 1
* Changes proposed by Graeme
*
* GRAEMEANDERSON 6. Apr. 2001 14:24:04 RB: rb_gsmms2, IB: REL_MGMT_007, PB: GAN00045, Rev: 3
* Renamed CheckHWok and ShowNVMMap to something more appropriate
*
* MLOHSE 28. Mar. 2001 16:27:42 RB: rb_gsmms2, IB: REL_MGMT_007, PB: MLO00051, Rev: 1
* Clean up caused by NVM -> FFS transition
*
* GRAEMEANDERSON 27. Mar. 2001 17:14:08 RB: rb_gsmms2, IB: REL_MGMT_007, PB: GAN00045, Rev: 1
* Changes for new malloc RAM cal data structure and some compiler warning cleaning
*
* KTUCHMAN 7. Mar. 2001 13:24:48 RB: rb_gsmms2, IB: REL_MGMT_007, PB: ktu00052, Rev: 1
* Use defines for GSMExit codes.
*
* WSCHODERER 1. Mar. 2001 13:59:36 RB: rb_gsmms2, IB: REL_MGMT_006, PB: wos00077, Rev: 1
* Added directory element "hwct".
*
* WSCHODERER 21. Feb. 2001 17:08:34 RB: rb_gsmms2, IB: REL_MGMT_006, PB: wos00076, Rev: 2
* don't include hwproto.h
*
* MLOHSE 16. Feb. 2001 13:38:51 RB: rb_gsmms2, IB: REL_MGMT_006, PB: MLO00047, Rev: 1
* Add hidden command to reload sec0 cal data
*
* GRAEMEANDERSON 30. Jan. 2001 21:37:12 RB: rb_gsmms2, IB: REL_MGMT_005, PB: GAN00037, Rev: 3
* Fix small bugs still in ADC cal reporting and setting commands
*
* GRAEMEANDERSON 30. Jan. 2001 14:57:48 RB: rb_gsmms2, IB: REL_MGMT_005, PB: GAN00037, Rev: 1
* Merge from PB GAN00036 into PB GAN00037 taken from latest IB. Small corrections for ADC value display.
*
* GRAEMEANDERSON 25. Jan. 2001 14:43:20 RB: rb_gsmms2, IB: REL_MGMT_005, PB: GAN00036, Rev: 1
* Tidy up, trim and improve the ADC PTE commands
*
* GRAEMEANDERSON 18. Jan. 2001 13:33:04 RB: rb_gsmms2, IB: REL_MGMT_005, PB: GAN00035, Rev: 2
* Small fixes in commands which display complete cal data structure
*
* GRAEMEANDERSON 17. Jan. 2001 18:29:18 RB: rb_gsmms2, IB: REL_MGMT_005, PB: GAN00035, Rev: 1
* Add new ADC structure and PTE mode commands. Not for TLC platform
*
* MLOHSE 9. Dec. 2000 18:19:25 RB: rb_gsmms2, IB: REL_MGMT_005, PB: MLO00037, Rev: 1
* minor syntax error fix for DEBUG build
*
* SCLAESSEN 9. Dec. 2000 11:52:46 RB: rb_gsmms2, IB: REL_MGMT_005, PB: SCL00007, Rev: 2
* Add ifdef BERLIN_PLATFORM to report of UH cal data
*
* GRAEMEANDERSON 7. Dec. 2000 14:10:41 RB: rb_gsmms2, IB: REL_MGMT_005, PB: GAN00027, Rev: 1
* Add ShowNVMcontents command
*
* WSCHEIT 1. Nov. 2000 21:15:28 RB: rb_gsmms2, IB: REL_MGMT_004, PB: WSC00017, Rev: 1
* Added DumpDSP
*
* MLOHSE 16. Okt. 2000 15:26:11 RB: rb_gsmms2, IB: BERLIN_DLV2, PB: MLO00024, Rev: 1
* Calibration data moved from NVM to flash sector 0. (#define SECTOR0_CALIBRATION to use this feature, right now only done for Berlin)
*
* ANOCK 17. Aug. 2000 20:25:23 RB: rb_gsmms2, IB: BERLIN_DLV1, PB: ANO00040, Rev: 1
* Merged from BERLIN_Draft.
*
* GRAEMEANDERSON 4. Aug. 2000 14:42:18 RB: rb_gsmms2, IB: BERLIN_draft, PB: GAN00015, Rev: 1
* PTE update for Berlin
*
* SANGERER 13. Jul. 2000 15:33:02 RB: rb_gsmms2, IB: BERLIN_draft, PB: sa110700, Rev: 1
* First Berlin draft
*
* SDARCY 13. May. 2000 15:15:35 RB: rb_gsmms2, IB: L1_TRIDENT, PB: SDA00021, Rev: 3
* Improved some CT response strings for SetCalDataVer, ShowCalDataVer.
*
* SDARCY 12. May. 2000 11:08:50 RB: rb_gsmms2, IB: L1_TRIDENT, PB: SDA00021, Rev: 2
* Renamed some commands. Made ForceNVMGood and bad
* commands hidden. Got rid of some warnings. Improved format
* of cal data listing output.
*
*
*/
/*---------------------------- Includes: ---------------------------------*/
/* General includes */
#include "..\system\portab.h"
#include "..\system\syslib.h"
#include "..\system\sysprim.h"
#include "..\global\timedate.h"
#include "..\global\gsmtimer.h"
#include "..\global\gsmexit.h"
#include "..\nv\hwcaldat.h"
#include "..\config\hwnvm.h"
#include "..\config\mnuitypes.h"
#include "..\config\uhconfig.h"
//#if defined (RENESAS_RF_B5)
#include "..\config\uhcaldat.h"
//#endif
/* CT related */
#include "..\ct\ct.h"
#include "..\ct\ctlocal.h"
#include "..\ct\cttri.h"
#if defined (TLC_PLATFORM)
#include "..\..\basecust\custt7\ct\security\imei_enc.h"
#endif
#include "..\hw\dsp_if\hwshared.h"
#include "..\hw\dsp_if\dc.h"
#if defined (IO_TRACER)
#include "..\io\iodriver.h"
#include "..\hw\hwvariant.h"
#include "..\io\trdriver.h"
#endif
// MSL
#if defined(IMEI_SECURITY_MSL)
#include "..\fl\flashgen.h"
#include "..\fl\flashutl.h"
#endif
/*---------------------------- Local Defines: ----------------------------*/
#define COMPLETE_CAL_REPORT_BUF_SIZE (40*1024) /* 20*1024 - buffer overflow */
#define DCROFFS_CAL_REPORT_BUF_SIZE (4*1024)
#define CT_BATT_SAMPLES 20
// MSL
#if defined(IMEI_SECURITY_MSL)
#define MSL_ADDR_WEIGHT 0x92
#define MSL_CODE_WEIGHT 0x47
#endif
/*---------------------------- Local Typedefs: ---------------------------*/
typedef struct
{
INT16 channelNo;
INT16 ADCLevel; /* High = 0, Low = 1 */
INT16 offsetValue;
} ADChannelOffsetType;
typedef struct
{
UINT16 SampleNumber;
UINT16 SampleDelay;
} BattSamplesType;
#if defined (RENESAS_RF_B5)
typedef struct
{
UINT16 Length;
UINT16 Data[RF_CONFIG_DATA_SIZE_MAX];
} RFConfigCal;
typedef struct
{
UINT16 Length;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -