HT32 CMSIS-DSP Library
Itọsọna olumulo
D/N: AN0538EN
Ọrọ Iṣaaju
CMSIS jẹ wiwo boṣewa sọfitiwia ti o dagbasoke nipasẹ ARM eyiti o ni orukọ kikun ti Cortex Microcontroller Software Interface Standard. Pẹlu wiwo boṣewa yii, awọn olupilẹṣẹ le lo wiwo kanna lati ṣakoso awọn oluṣakoso microcontroller lati oriṣiriṣi awọn olupese nitorinaa kikuru idagbasoke wọn ati akoko ikẹkọ. Fun alaye diẹ sii, tọka si osise CMSIS webojula: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Ọrọ yii ni pataki ṣapejuwe ohun elo CMSIS-DSP ni jara HT32 ti awọn oludari microcontroller eyiti o pẹlu iṣeto ayika, itọsọna fun lilo, ati bẹbẹ lọ.
Apejuwe iṣẹ-ṣiṣe
CMSIS-DSP Awọn ẹya ara ẹrọ
CMSIS-DSP, eyiti o jẹ ọkan ninu awọn paati CMSIS pẹlu awọn ẹya wọnyi.
- Pese ṣeto ti awọn iṣẹ iṣelọpọ ifihan agbara jeneriki ti a ṣe igbẹhin si Cortex-M.
- Ile-ikawe iṣẹ ti ARM pese ni awọn iṣẹ to ju 60 lọ.
- Ṣe atilẹyin q7,q15,q31
(Akiyesi) ati aaye lilefoofo (32-bit) awọn iru data - Awọn imuse ti wa ni iṣapeye fun eto itọnisọna SIMD eyiti o wa fun Cortex-M4/M7/M33/M35P.
Akiyesi: Iforukọsilẹ q7, q15, ati q31 ninu ile-ikawe iṣẹ ni atele ṣe aṣoju awọn aaye-ti o wa titi 8, 16, ati 32bit.
CMSIS-DSP Awọn ohun kan Library Išė
Ile-ikawe iṣẹ CMSIS-DSP ti pin si awọn ẹka wọnyi:
- Awọn iṣẹ iṣiro ipilẹ, awọn iṣẹ mathimatiki yara, ati awọn iṣẹ iṣiro eka
- Awọn iṣẹ sisẹ ifihan agbara
- Awọn iṣẹ Matrix
- Awọn iṣẹ iyipada
- Awọn iṣẹ iṣakoso mọto
- Awọn iṣẹ iṣiro
- Awọn iṣẹ atilẹyin
- Interpolation awọn iṣẹ
Eto Ayika
Abala yii yoo ṣafihan ohun elo hardware ati sọfitiwia ti a lo ninu ohun elo example.
Hardware
Botilẹjẹpe CMSIS-DSP ṣe atilẹyin jara HT32 ni kikun, o daba lati lo MCU kan pẹlu agbara SRAM ti o tobi ju 4KB bi ohun elo CMSIS-DSP tẹlẹ.ample nilo kan ti o tobi SRAM iwọn. Ọrọ yii gba ESK32-30501 bi iṣaajuample ti o nlo HT32F52352.
Software
Ṣaaju lilo ohun elo example, akọkọ, rii daju pe ile-ikawe Firmware tuntun Holtek HT32 ti ṣe igbasilẹ lati ọdọ osise Holtek webojula. Awọn download ipo ti han ni Figure
Decompress awọn file lẹhin gbigba.
Ṣe igbasilẹ koodu ohun elo CMSIS-DSP nipasẹ ọna asopọ ni isalẹ. Awọn koodu ohun elo ti wa ni aba ti bi a zip file pẹlu orukọ HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Ṣe igbasilẹ ọna: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
Awọn file Ofin iforukọ jẹ afihan ni Nọmba 2.
Bi koodu ohun elo ko ni ile-ikawe famuwia ninu files, awọn olumulo nilo lati gbe koodu ohun elo ṣiṣi silẹ ati ile-ikawe famuwia files sinu ọna ti o tọ ṣaaju ki o to bẹrẹ akopọ. Koodu ohun elo file ni awọn folda meji, eyiti o jẹ ohun elo ati ile-ikawe ti ipo rẹ han ni Nọmba 3. Fi awọn folda meji wọnyi sinu ilana gbongbo ikawe famuwia lati pari file iṣeto ni ona bi o han ni Figure 4. Awọn olumulo tun le decompress awọn ohun elo koodu ati famuwia ìkàwé fisinuirindigbindigbin files sinu ọna kanna lati ṣaṣeyọri ipa kanna. Fun eyi example, awọn liana fun CMSIS_DSP yoo wa ni ti ri labẹ awọn ohun elo folda lẹhin decompression.
File Ilana
Awọn folda akọkọ meji ti o wa ninu koodu ohun elo file, ìkàwé\CMSIS, ati ohun elo\CMSIS_DSP, ti wa ni apejuwe kọọkan ni isalẹ.
Awọn akoonu inu iwe ikawe\CMSIS folda jẹ bi atẹle.
Orukọ folda | Apejuwe |
DSP_Lib | Ohun elo FW koodu orisun |
DSP_Lib\ Examples | Ni ọpọ boṣewa examples ti ile-ikawe iṣẹ CMSIS-DSP eyiti o pese nipasẹ ARM. Awọn eto fun awọn iṣẹ akanṣe wọnyi ni a ṣe ni ọna afarawe laisi nilo MCU kan. Awọn olumulo le ni kiakia ko bi lati lo awọn wọnyi Mofiamples nipa ṣiṣe wọn. |
DSP_Lib\ Orisun | CMSIS-DSP koodu orisun ìkàwé iṣẹ |
Fi kún un | Akọsori pataki file nigba lilo CMSIS-DSP ìkàwé iṣẹ |
Pẹlu\arm_wọpọ_tabili.h | Ikede ti awọn oniyipada orun ita (ita) |
Pẹlu\arm_const_structs.h | Declaration of ita ibakan |
Pẹlu\arm_math.h | Eyi file jẹ pataki pupọ bi wiwo fun lilo ile-ikawe iṣẹ CMSIS-DSP. Awọn ipe si eyikeyi ile-ikawe API ti wa ni imuse nipasẹ arm_math.h. |
Lib\ARM | Ile-ikawe iṣẹ CMSIS-DSP fun ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Little endian) |
Lib\GCC | Ile-ikawe iṣẹ CMSIS-DSP fun GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian) |
Ohun elo\CMSIS_DSP folda ni ọpọ CMSIS_DSP ninuamples, ti o lo HT32 jara ti MCUs ati atilẹyin ni kikun HT32 jara. Awọn iṣẹ akanṣe naa ni idagbasoke ni lilo Keil MDK_ARM.
Orukọ folda | Apejuwe |
apa_class_marks_example | Ṣe afihan bi o ṣe le gba iye ti o pọju, iye ti o kere ju, iye ti a nireti, iyapa boṣewa, iyatọ ati awọn iṣẹ matrix. |
apa_convolution_example | Ṣe afihan imọ-ọrọ convolution nipasẹ eka FFT ati awọn iṣẹ atilẹyin. |
apa_dotproduct_example | Ṣe afihan bi o ṣe le gba ọja aami nipasẹ isodipupo ati afikun ti awọn olutọpa. |
apa_fft_bin_example | Ṣe afihan bi o ṣe le ṣe iṣiro window agbara ti o pọju (bin) ni agbegbe igbohunsafẹfẹ ti awọn ifihan agbara titẹ sii nipa lilo FFT eka, titobi eka, ati awọn iṣẹ module ti o pọju. |
apa_fir_example | Ṣe afihan bi o ṣe le ṣe sisẹ sisẹ kekere-kekere nipa lilo FIR. |
arm_graphic_equalizer_example | Ṣe afihan bi o ṣe le yi didara ohun pada nipa lilo oluṣeto ayaworan. |
arm_linear_interp_example | Ṣe afihan lilo module interpolation laini ati module mathematiki iyara. |
apa_matrix_example | Ṣe afihan iṣiro ibamu matrix pẹlu iyipada matrix, isodipupo matrix, ati onidakeji matrix. |
arm_signal_converge_example | Ṣe afihan àlẹmọ kekere-iwọle FIR ti ara ẹni ti o ṣatunṣe ni lilo NLMS (Normalised Least Mean Square), FIR, ati awọn modulu maths ipilẹ. |
apa_sin_cos_example | Ṣe afihan awọn iṣiro trigonometric. |
apa_variance_example | Ṣe afihan bi o ṣe le ṣe iṣiro iyatọ nipasẹ awọn iṣiro ipilẹ ati awọn iṣẹ atilẹyin. |
filter_iir_high_pass_example | Ṣe afihan bi o ṣe le ṣe sisẹ sisẹ giga-giga nipa lilo IIR. |
Idanwo
Ọrọ yii yoo lo ohun elo \CMSIS_DSP\arm_class_marks_example bi igbeyewo example. Ṣaaju ki o to bẹrẹ idanwo, ṣayẹwo boya ESK32-30501 ti sopọ tabi rara ati rii daju pe koodu ohun elo ati ile-ikawe famuwia ti gbe si ipo ti o tọ. Ṣii ohun elo \CMSIS_DSP\arm_class_marks_example folda ki o si ṣiṣẹ _CreateProject.bat file, bi han ni isalẹ. Lẹhin eyi, ṣii MDK_ARMv5 (tabi MDK_ARM fun Keilv4), lati rii pe iṣaaju yii.ample atilẹyin ni kikun HT32 jara. Ṣii Project_52352.uvprojx ise agbese nitori ESK32-30501 ti lo.
Lẹhin ṣiṣi iṣẹ naa, ṣajọ (bọtini ọna abuja “F7”), ṣe igbasilẹ (bọtini ọna abuja “F8”), ṣatunṣe (bọtini ọna abuja “Ctrl + F5”) ati lẹhinna ṣiṣẹ (bọtini ọna abuja “F5”). Awọn abajade ipaniyan le ṣe akiyesi lilo awọn oniyipada ti a ṣe akojọ si isalẹ.
Ayípadà Oruko | Data Itọsọna | Apejuwe | Abajade ipaniyan |
igbeyewoMarks_f32 | Iṣawọle | Ọkan 20×4 orun | – |
testUnity_f32 | Iṣawọle | Ọkan 4×1 orun | – |
igbeyewo o wu | Abajade | Ọja ti testMarks_f32 ati testUnity_f32 | {188…} |
max_marks | Abajade | Awọn ti o pọju iye ti awọn eroja ni igbeyewo o wu orun | 364 |
min_marks | Abajade | Iwọn ti o kere ju ti awọn eroja ti o wa ninu igbejade igbejade idanwo | 156 |
tumosi | Abajade | Awọn ti ṣe yẹ iye ti awọn eroja ni igbeyewo o wu orun | 212.300003 |
std | Abajade | Iyapa boṣewa ti awọn eroja ti o wa ninu igbejade igbejade idanwo | 50.9128189 |
var | Abajade | Iyatọ ti awọn eroja ti o wa ninu igbejade igbejade idanwo | 2592.11523 |
Itọsọna fun Lilo
Ijọpọ
Abala yii yoo ṣafihan bi o ṣe le ṣepọ CMSIS-DSP sinu awọn iṣẹ akanṣe olumulo.
Igbesẹ 1
Ni akọkọ, ṣafikun aami Itumọ tuntun nigbati o ba ṣeto iṣẹ akanṣe, “ARM_MATH_CM0PLUS” fun M0+ ati “ARM_MATH_CM3” fun M3. Ilana eto: (1) Awọn aṣayan ti Bọtini ọna abuja Àkọlé “Alt+F7”), (2) Yan oju-iwe C/C++, (3) Ṣafikun asọye tuntun ninu aṣayan Setumo, bi a ṣe han ni isalẹ.
Igbesẹ 2
Lati ṣafikun ọna Fikun, tẹ bọtini ti o wa lẹgbẹẹ aṣayan “Fi Awọn ipa-ọna” lori oju-iwe C/C ++. Lẹhinna Ferese Eto Folda kan yoo gbe jade, nibiti ọna tuntun kan ..\...\...\..\ Library\ CMSISInclude” ti le ṣafikun, bi a ṣe han ni isalẹ.
Igbesẹ 3 (Aṣayan)
Lati ṣafikun ile-ikawe iṣẹ, tẹ bọtini “Ṣakoso Awọn nkan Project” bi a ṣe han ni isalẹ. Ti bọtini naa ko ba rii, tẹ “Window → Tunto View si Awọn aiyipada → Tunto", ki iṣeto ni window IDE yoo pada si awọn eto aiyipada rẹ. Lẹhin eyi, bọtini “Ṣakoso Awọn nkan Project” yoo han.
Ṣafikun folda CMSIS-DSP nipa lilo awọn bọtini bi a ṣe han ninu apoti pupa ni isalẹ ki o gbe lọ labẹ folda CMSIS nipa lilo bọtini “Gbe Up”. Pa window Ṣakoso awọn tems Project nigbati o ba pari.
Igbesẹ 4
Tẹ-lẹẹmeji folda CMSIS-DSP ni apa osi (ti o ba jẹ igbesẹ 3, yan folda eyikeyi gẹgẹbi Olumulo tabi CMSIS, ati bẹbẹ lọ), lẹhinna ṣafikun ile-ikawe iṣẹ CMSIS-DSP sinu rẹ. Yan \ ikawe \ CMSIS \ Lib \ ARM \ arm_cortexM0l_math.lib fun M0 + tabi \ ìkàwé \ CMSIS \ Lib \ ARM \ arm_cortexM3l_math.lib fun M3. Ni ipari, ile-ikawe iṣẹ arm_cortexMxl_math.lib yoo han ni folda CMSIS-DSP, bi a ṣe han ni isalẹ.
Igbesẹ 5
Fi ori kun file "arm_math.h" sinu main.c, bi a ṣe han ni isalẹ. Bayi gbogbo awọn eto isọpọ ti pari
Kekere-Pass Ajọ – FIR
Abala yii, nipa iṣafihan ohun elo CMSIS_DSP arm_fir_example, yoo ṣe afihan bi o ṣe le ṣeto àlẹmọ FIR ati yọ awọn ifihan agbara-igbohunsafẹfẹ kuro ni lilo FIR. Ifihan agbara titẹ sii jẹ 1kHz ati 15kHz awọn igbi ese. Awọn ifihan agbara sampling igbohunsafẹfẹ ni 48kHz. Awọn ifihan agbara loke 6kHz jẹ filtered nipasẹ FIR ati awọn ifihan agbara 1kHz ti jade. Koodu ohun elo ti pin si awọn ẹya pupọ.
- Ibẹrẹ. Lati pilẹṣẹ FIR, API atẹle ni a lo.
ofo arm_fir_init_f32 (arm_fir_instance_f32 * S, uint16_t numTaps, float32_t * pCoeffs, float32_t * pState, uint32_t blockSize);
S: FIR àlẹmọ be
awọn nọmba: Awọn nọmba ti àlẹmọ stages (awọn nọmba ti àlẹmọ olùsọdipúpọ). Ninu example, numTaps=29.
Coffs: Àlẹmọ olùsọdipúpọ. Awọn nọmba àlẹmọ 29 wa ni iṣaaju yiiample eyi ti o ti wa ni iṣiro nipa MATLAB.
ipinle: Atọka ipo
blockIwọn: Ṣe aṣoju nọmba ti samples ni ilọsiwaju ni akoko kan. - Kekere-kọja àlẹmọ. Nipa pipe API ti FIR, 32 samples ti wa ni ilọsiwaju kọọkan akoko ati nibẹ ni o wa 320 samples lapapọ. API ti a lo ti han ni isalẹ.
ofo arm_fir_f32 (const arm_fir_instance_f32 * S, float32_t * pSrc, float32_t * pDst, uint32_t blockSize);
S: FIR àlẹmọ be
pSrc: ifihan agbara titẹ sii. A dapọ ifihan agbara ti 1kHz ati 15kHz ni igbewọle ni yi example. pDst: ifihan agbara jade. Ifihan agbara ti o ti ṣe yẹ jẹ 1kHz. blockIwọn: Ṣe aṣoju nọmba ti samples ni ilọsiwaju ni akoko kan. - Ijeri data. Abajade sisẹ ti o gba nipasẹ MATLAB ni a gba bi itọkasi ati abajade sisẹ ti o gba nipasẹ CMSIS-DSP jẹ iye gangan. Ṣe afiwe awọn abajade meji lati rii daju boya abajade abajade jẹ deede tabi rara. leefofo arm_snr_f32(fofo * pRef, leefofo * pTest, uint32_t buffSize)
Pref: Iye itọkasi ti ipilẹṣẹ nipasẹ MATLAB.
post: Gangan iye ti ipilẹṣẹ nipa CMSIS-DSP.
blockIwọn: Ṣe aṣoju nọmba ti samples ni ilọsiwaju ni akoko kan.
Gẹgẹbi a ṣe han ni isalẹ, Data Input fihan pe ifihan agbara ko tii yo ati pe Data Ijade fihan abajade ti a yan. Y-apakan duro awọn amplitude ti awọn ifihan agbara ati awọn sampIgbohunsafẹfẹ ling jẹ 48kHz, nitorinaa nọmba X-axis pẹlu ọkan duro akoko pẹlu 20.833μs. O le rii lati Nọmba 12 ati Nọmba 13 pe ifihan agbara 15kHz ti yọkuro ati pe ifihan 1kHz nikan ni o ku.
Ajọ-Pass giga- IIR
Abala yii, nipa iṣafihan ohun elo \CMSIS_DSP\filter_iir_high_pass_example, yoo ṣe afihan bi o ṣe le ṣeto àlẹmọ IIR ati yọ awọn ifihan agbara-kekere kuro nipa lilo IIR. Ifihan agbara titẹ sii jẹ 1Hz ati 30Hz igbi ese. Awọn ifihan agbara sampling igbohunsafẹfẹ ni 100Hz ati ki o lapapọ 480 ojuami ni o wa sampasiwaju. Awọn ifihan agbara ti o wa ni isalẹ 7Hz ti yọkuro nipasẹ IIR.
Koodu ohun elo ti pin si awọn ẹya pupọ.
- 480 s waamples. Sample 0 ~ 159 jẹ awọn igbi ese 30Hz, sample 160~319 ni 1Hz ese igbi ati sample 320 ~ 479 ni 30Hz ese igbi.
- Ibẹrẹ. Lati pilẹṣẹ IIR, API wọnyi ni a lo. ofo apa_biquad_cascade_df1_init_f32 (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t * pCoeffs, float32_t * ipinle));
S: Ilana àlẹmọ IIR
apao stages: Nọmba ti aṣẹ-keji stages ni àlẹmọ. Ninu example, numStages=1.
Coffs: Àlẹmọ olùsọdipúpọ. Awọn nọmba àlẹmọ 5 wa ni iṣaaju yiiample.
ipinle: Atọka ipo - Ajọ-kọja giga. Nipa pipe API ti IIR, 1 sample ti wa ni ilọsiwaju kọọkan akoko ati nibẹ ni o wa 480 samples lapapọ. API ti a lo ti han ni isalẹ. ofo apa_biquad_cascade_df1_f32 (const arm_biquad_casd_df1_inst_f32 * S, float32_t * pSrc, float32_t * pDst, uint32_t blockSize);
S: Ilana àlẹmọ IIR
pSrc: ifihan agbara titẹ sii. Ifihan agbara ti o dapọ ti 1Hz ati 30Hz jẹ titẹ sii ni iṣaaju yiiample.
pDst: ifihan agbara jade. Ifihan agbara ti o ti ṣe yẹ jẹ 30Hz.
blockIwọn: Ṣe aṣoju nọmba ti samples ni ilọsiwaju ni akoko kan. - Abajade abajade. Awọn ifihan agbara titẹ sii ati ti o wu jade si PC nipasẹ titẹ. Gẹgẹbi a ṣe han ni isalẹ, Data Input fihan pe ifihan agbara ko tii yo ati pe Data Ijade fihan abajade ti a yan. Y-apakan duro awọn amplitude ti awọn ifihan agbara ati awọn sampIgbohunsafẹfẹ ling jẹ 100Hz, nitorinaa nọmba X-axis pẹlu ọkan duro akoko pẹlu 10ms. O le rii lati Nọmba 14 ati Nọmba 15 pe ifihan 1Hz ti yọkuro ati pe ifihan 30Hz nikan ni o ku.
Awọn ero
Awọn olumulo yẹ ki o san ifojusi pataki si iwọn iranti lẹhin iṣakojọpọ nigba lilo ile-ikawe iṣẹ CMSIS-DSP. Rii daju pe ko si aponsedanu iranti waye ṣaaju idanwo.
Ipari
CMSIS-DSP ni awọn agbara nla ni sisẹ ifihan agbara ati iṣiro mathematiki ati pe o yẹ fun akiyesi pataki nipasẹ awọn olumulo.
Ohun elo itọkasi
Itọkasi webojula: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Awọn ẹya ati Alaye iyipada
Ọjọ | Onkọwe | Oro | Alaye iyipada |
2022.06.02 | kikọ, Liu | V1.10 | Ṣe atunṣe ọna igbasilẹ naa |
2019.09.03 | Allen, Wang | V1.00 | Akọkọ Ẹya |
AlAIgBA
Gbogbo alaye, aami-išowo, awọn apejuwe, awọn aworan, awọn fidio, awọn agekuru ohun, awọn ọna asopọ ati awọn ohun miiran ti o han lori eyi webAaye ('Alaye') wa fun itọkasi nikan ati pe o wa labẹ iyipada nigbakugba laisi akiyesi iṣaaju ati ni lakaye ti Holtek Semiconductor Inc. ati awọn ile-iṣẹ ti o jọmọ (lẹhin 'Holtek', 'ile-iṣẹ', 'wa',' awa tabi 'wa'). Lakoko ti Holtek n gbiyanju lati rii daju deede ti Alaye lori eyi webojula, ko si kiakia tabi mimọ atilẹyin ọja ti wa ni fun nipasẹ Holtek si awọn išedede ti Alaye. Holtek ko ni jẹ iduro fun eyikeyi aiṣedeede tabi jijo. Holtek kii yoo ṣe oniduro fun eyikeyi awọn bibajẹ (pẹlu ṣugbọn kii ṣe opin si ọlọjẹ kọnputa, awọn iṣoro eto tabi pipadanu data) ohunkohun ti o dide ni lilo tabi ni asopọ pẹlu lilo eyi webojula nipa eyikeyi party. Awọn ọna asopọ le wa ni agbegbe yii, eyiti o gba ọ laaye lati ṣabẹwo si webawọn aaye ti awọn ile-iṣẹ miiran. Awọn wọnyi webAwọn aaye ko ni iṣakoso nipasẹ Holtek. Holtek kii yoo ni ojuse ati pe ko si iṣeduro si eyikeyi Alaye ti o han ni iru awọn aaye. Hyperlinks si miiran webawọn aaye wa ni ewu ti ara rẹ.
Idiwọn ti Layabiliti
Ni eyikeyi idiyele, Ile-iṣẹ ko ni iwulo lati gba ojuse fun eyikeyi pipadanu tabi ibajẹ ti o ṣẹlẹ nigbati ẹnikẹni ba ṣabẹwo si webojula taara tabi fi ogbon ekoro ati ki o nlo awọn akoonu, alaye tabi iṣẹ lori awọn webojula.
Ofin Alakoso
Idasilẹ yii wa labẹ awọn ofin ti Orilẹ-ede China ati labẹ aṣẹ ti Ẹjọ ti Orilẹ-ede China.
Imudojuiwọn ti AlAIgBA
Holtek ni ẹtọ lati ṣe imudojuiwọn AlAIgBA nigbakugba pẹlu tabi laisi akiyesi iṣaaju, gbogbo awọn ayipada munadoko lẹsẹkẹsẹ lẹhin fifiranṣẹ si webojula.
Awọn iwe aṣẹ / Awọn orisun
![]() |
HOLTEK HT32 CMSIS-DSP Library [pdf] Itọsọna olumulo HT32, CMSIS-DSP Library, HT32 CMSIS-DSP Library, Library |