色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【先楫半導體HPM6750EVKMINI評估板試用體驗】基準性能測試之三:whetstone

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-11-18 15:24 ? 次閱讀
本文來源電子發燒友社區,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2284399_1_1.html


前言



之前我們使用dhrystonecoremark進行了相關的性能測試。這次我們使用whetstone進行測試,該測試關注浮點相關的計算性能。

獲取代碼

http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz
下載classic_benchmarks.tar.gz文件
解壓文件
classic_benchmarksclassic_benchmarkssource_codewhetstone復制到工程目錄
projled
添加代碼

按照上一步將文件復制到工程目錄下后,按照如下方式刷新
poYBAGKXHnqAQm5tAADWR_VH__k223.png

可以看到源碼添加到了工程目錄
pYYBAGKXfp6AJPliAABr2hT83jI622.png


修改代碼

前面注釋**************************************************************************少了/

注釋掉#include"cpuidh.h"

注釋掉getDetails

刪除whets.txt相關操作

fprintf改為rt_kprintf


Main改為whetstone_main

pout調用時字符串中刪除
浮點數都放大100倍整數打印

詳見后面附錄代碼

main中調用
intcore_main(intargc,char*argv[]);
whetstone_main(0, 0);
測試

注以下結果放大100倍,整數打印
-O0
poYBAGKXfp-AGIthAAB6358qsZU470.png

-O3
pYYBAGKXfqCAe-PNAAB0niO1ofU654.png

RT_tiCK_PER_SECOND=1000
優化等級0
優化等級3
RAM中運行
MWIPS
38.970
44.858
ROM中運行

對比

可以從下網站看看打敗了全國多少網友
http://www.roylongbottom.org.uk/whetstone%20results.htm
pYYBAGKXfqGAf1VnAACrn-d9iX4117.png
附whets.c代碼


  1. /*gcc whets.c cpuidc64.o cpuida64.o -m64 -lrt -lc -lm -o whet
  2. *
  3. *Document: Whets.c
  4. *File Group: Classic Benchmarks
  5. *Creation Date: 6 November 1996
  6. *Revision Date: 6 November 2010 Ubuntu Version for PCs
  7. *
  8. *Title: Whetstone Benchmark in C/C++
  9. *Keywords: WHETSTONE BENCHMARK PERFORMANCE MIPS
  10. * MWIPS MFLOPS
  11. *
  12. *Abstract: C or C++ version of Whetstone one of the
  13. * Classic Numeric Benchmarks with example
  14. * results on P3 to P6 based PCs.
  15. *
  16. *Contributor: roy@roylongbottom.org.uk
  17. *
  18. ************************************************************
  19. *
  20. * C/C++ Whetstone Benchmark Single or Double Precision
  21. *
  22. * Original concept Brian Wichmann NPL 1960's
  23. * Original author Harold CurnowCCTA 1972
  24. * Self timing versions Roy Longbottom CCTA 1978/87
  25. * Optimisation control Bangor University 1987/90
  26. * C/C++ Version Roy Longbottom 1996
  27. * Compatibility & timersAl Aburto 1996
  28. *
  29. ************************************************************
  30. *
  31. * Official version approved by:
  32. *
  33. * Harold Curnow100421.1615@compuserve.com
  34. *
  35. * Happy 25th birthday Whetstone, 21 November 1997
  36. *
  37. ************************************************************
  38. *
  39. * The program normally runs for about 100 seconds
  40. * (adjustable in main - variable duration). This time
  41. * is necessary because of poor PC clock resolution.
  42. * The original concept included such things as a given
  43. * number of subroutine calls and divides which may be
  44. * changed by optimisation. For comparison purposes the
  45. * compiler and level of optimisation should be identified.
  46. *
  47. * This version is set to run for 10 seconds using high
  48. * resolution timer.
  49. *
  50. ************************************************************
  51. *
  52. * The original benchmark had a single variable I which
  53. * controlled the running time. Constants with values up
  54. * to 899 were multiplied by I to control the number
  55. * passes for each loop. It was found that large values
  56. * of I could overflow index registers so an extra outer
  57. * loop with a second variable J was added.
  58. *
  59. * Self timing versions were produced during the early
  60. * days. The 1978 changes supplied timings of individual
  61. * loops and these were used later to produce MFLOPS and
  62. * MOPS ratings.
  63. *
  64. * 1987 changes converted the benchmark to Fortran 77
  65. * standards and removed redundant IF statements and
  66. * loops to leave the 8 active loops N1 to N8. Procedure
  67. * P3 was changed to use global variables to avoid over-
  68. * optimisation with the first two statements changed from
  69. * X1=X and Y1=Y to X=Y and Y=Z. A self time calibrating
  70. * version for PCs was also produced, the facility being
  71. * incorporated in this version.
  72. *
  73. * This version has changes to avoid worse than expected
  74. * speed ratings, due to underflow, and facilities to show
  75. * that consistent numeric output is produced with varying
  76. * optimisation levels or versions in different languages.
  77. *
  78. * Some of the procedures produce ever decreasing numbers.
  79. * To avoid problems, variables T and T1 have been changed
  80. * from 0.499975 and 0.50025 to 0.49999975 and 0.50000025.
  81. *
  82. * Each section now has its own double loop. Inner loops
  83. * are run 100 times the loop constants. Calibration
  84. * determines the number of outer loop passes. The
  85. * numeric results produced in the main output are for
  86. * one pass on the outer loop. As underflow problems were
  87. * still likely on a processor 100 times faster than a 100
  88. * MHz Pentium, three sections have T=1.0-T inserted in the
  89. * outer loop to avoid the problem. The two loops avoid
  90. * index register overflows.
  91. *
  92. * The first section is run ten times longer than required
  93. * for accuracy in calculating MFLOPS. This time is divided
  94. * by ten for inclusion in the MWIPS calculations.
  95. *
  96. * Early version has facilities for typing in details of
  97. * the particular run, appended to file whets.txt along
  98. * with the results. This version attemps to obtain these
  99. * automatically.
  100. *
  101. * 2010 Section 4 modified slightly to avoid over optimisation
  102. * by GCC compiler
  103. *
  104. * Roy Longbottomroy@roylongbottom.org.uk
  105. *
  106. ************************************************************
  107. *
  108. * Whetstone benchmark results, further details of the
  109. * benchmarks and history are available from:
  110. *
  111. * http://www.roylongbottom.org.uk/whetstone%20results.htm
  112. * http://www.roylongbottom.org.uk/whetstone.htm
  113. *
  114. ************************************************************
  115. *
  116. * Source code is available in C/C++, Fortran, Basic and
  117. * Visual Basic in the same format as this version. Pre-
  118. * compiled versions for PCs are also available via C++.
  119. * These comprise optimised and non-optimised versions
  120. * for DOS, Windows and NT. See:
  121. *
  122. * http://www.roylongbottom.org.uk/whetstone%20results.htm
  123. *
  124. ************************************************************
  125. *
  126. * Example of initial calibration display (Pentium 100 MHz)
  127. *
  128. * Single Precision C/C++ Whetstone Benchmark
  129. *
  130. * Calibrate
  131. * 0.17 Seconds 1 Passes (x 100)
  132. * 0.77 Seconds 5 Passes (x 100)
  133. * 3.70 Seconds 25 Passes (x 100)
  134. *
  135. * Use 676passes (x 100)
  136. *
  137. * 676 passes are used for an approximate duration of 100
  138. * seconds, providing an initial estimate of a speed rating
  139. * of 67.6 MWIPS.
  140. *
  141. * This is followed by the table of results as below.
  142. * Whetstone SinglePrecision Benchmark in C/C++
  143. *
  144. * Loop content Result MFLOPS MOPS Seconds
  145. *
  146. * N1 floating point -1.12475025653839100 19.971 0.274
  147. * N2 floating point -1.12274754047393800 11.822 3.240
  148. * N3 if then else 1.00000000000000000 11.659 2.530
  149. * N4 fixed point 12.00000000000000000 13.962 6.430
  150. * N5 sin,cos etc. 0.49904659390449520 2.097 11.310
  151. * N6 floating point 0.99999988079071040 3.360 45.750
  152. * N7 assignments 3.00000000000000000 2.415 21.810
  153. * N8 exp,sqrt etc. 0.75110864639282230 1.206 8.790
  154. *
  155. * MWIPS 28.462 100.134
  156. *
  157. *Note different numeric results to single precision. Slight variations
  158. *are normal with different compilers and sometimes optimisation levels.
  159. *
  160. **************************************************************************/
  161. #include /* for sin, exp etc. */
  162. #include /* standard I/O */
  163. #include /* for strcpy - 3 occurrences*/
  164. #include /* for exit - 1 occurrence */
  165. //#include "cpuidh.h"
  166. /*PRECISION PRECISION PRECISION PRECISION PRECISION PRECISION PRECISION*/
  167. /* #define DP */
  168. #ifdef DP
  169. #define SPDP double
  170. #define Precision "Double"
  171. #else
  172. #define SPDP float
  173. #define Precision "Single"
  174. #endif
  175. //#define opt "Opt 3 64 Bit"
  176. void whetstones(long xtra, long x100, int calibrate);
  177. void pa(SPDP e[4], SPDP t, SPDP t2);
  178. void po(SPDP e1[4], long j, long k, long l);
  179. void p3(SPDP *x, SPDP *y, SPDP *z, SPDP t, SPDP t1, SPDP t2);
  180. void pout(char* title, float ops, int type, SPDP checknum,
  181. SPDP time, int calibrate, int section);
  182. static SPDP loop_time[9];
  183. static SPDP loop_mops[9];
  184. static SPDP loop_mflops[9];
  185. static SPDP TimeUsed;
  186. static SPDP mwips;
  187. static char headings[9][18];
  188. static SPDP Check;
  189. static SPDP results[9];
  190. #include "rtthread.h"
  191. doubletheseSecs = 0.0;
  192. doublestartSecs = 0.0;
  193. doublesecs;
  194. int millisecs = 0;
  195. void start_time()
  196. {
  197. startSecs = rt_tick_get()*1.0/RT_TICK_PER_SECOND;
  198. return;
  199. }
  200. void end_time()
  201. {
  202. secs = rt_tick_get()*1.0/RT_TICK_PER_SECOND - startSecs;
  203. millisecs = (int)(1000.0 * secs);
  204. return;
  205. }
  206. int whetstone_main(int argc, char *argv[])
  207. {
  208. int count = 10, calibrate = 1;
  209. long xtra = 1;
  210. int section;
  211. long x100 = 100;
  212. int duration = 10;
  213. ///FILE *outfile;
  214. char compiler[80], options[256], general[10][80] = {" "};
  215. char endit[80];
  216. int i;
  217. int nopause = 1;
  218. if (argc > 1)
  219. {
  220. switch (argv[1][0])
  221. {
  222. case 'N':
  223. nopause = 0;
  224. break;
  225. case 'n':
  226. nopause = 0;
  227. break;
  228. }
  229. }
  230. //getDetails();
  231. //for (i=1; i<10; i++)
  232. //{
  233. // rt_kprintf("%sn", configdata[i]);
  234. //}
  235. ///local_time();
  236. ///rt_kprintf("n");
  237. ///rt_kprintf("##########################################n");
  238. ///rt_kprintf("%s Precision C Whetstone Benchmark %s, %sn", Precision, opt, timeday);
  239. ///outfile = fopen("whets.txt","a+");
  240. ///if (outfile == NULL)
  241. ///{
  242. /// rt_kprintf ("Cannot open results file nn");
  243. /// rt_kprintf("Press Enter to exitn");
  244. /// i = getchar();
  245. ///
  246. /// exit (0);
  247. ///}
  248. rt_kprintf("Calibraten");
  249. do
  250. {
  251. TimeUsed=0;
  252. whetstones(xtra,x100,calibrate);
  253. rt_kprintf("%8d mS %8d Passes (x 100)n",(int)(TimeUsed*1000),xtra);
  254. calibrate++;
  255. count--;
  256. if (TimeUsed > 2.0)
  257. {
  258. count = 0;
  259. }
  260. else
  261. {
  262. xtra = xtra * 5;
  263. }
  264. }
  265. while (count > 0);
  266. if (TimeUsed > 0) xtra = (long)((SPDP)(duration * xtra) / TimeUsed);
  267. if (xtra < 1) xtra = 1;
  268. calibrate = 0;
  269. rt_kprintf("nUse %dpasses (x 100)n", (int)xtra);
  270. rt_kprintf("n %s Precision C/C++ Whetstone Benchmark",Precision);
  271. #ifdef PRECOMP
  272. rt_kprintf("n Compiler%s", precompiler);
  273. rt_kprintf("n Options %sn", preoptions);
  274. #else
  275. rt_kprintf("n");
  276. #endif
  277. rt_kprintf("nLoop content Result MFLOPS "
  278. " MOPS msnn");
  279. TimeUsed=0;
  280. whetstones(xtra,x100,calibrate);
  281. rt_kprintf("nMWIPS ");
  282. if (TimeUsed>0)
  283. {
  284. mwips=(float)(xtra) * (float)(x100) / (10 * TimeUsed);
  285. }
  286. else
  287. {
  288. mwips = 0;
  289. }
  290. rt_kprintf(" %13d%13dnn",(int)(mwips*1000),(int)(TimeUsed*1000));
  291. if (Check == 0) rt_kprintf("Wrong answer");
  292. /************************************************************************/
  293. /* Add results to output file whets.txt */
  294. /************************************************************************/
  295. ///rt_kprintf( "n");
  296. ///rt_kprintf( "##############################################nn");
  297. ///for (i=1; i<10; i++)
  298. ///{
  299. /// frt_kprintf(outfile, "%s n", configdata[i]);
  300. ///}
  301. ///rt_kprintf( "n");
  302. ///rt_kprintf( "##############################################nn");
  303. ///rt_kprintf( "Whetstone %s Precision C Benchmark%s, %sn",Precision, opt, timeday);
  304. ///rt_kprintf( "n");
  305. //rt_kprintf("Loop content Result"
  306. // " MFLOPS MOPS Secondsnn");
  307. //for (section=1; section<9; section++)
  308. // {
  309. // rt_kprintf( "%s%24.17f ", headings[section],
  310. // results[section]);
  311. // if (loop_mops[section] == 99999)
  312. // {
  313. // rt_kprintf("%9.3f %9.3fn",
  314. // loop_mflops[section], loop_time[section]);
  315. // }
  316. // else
  317. // {
  318. // rt_kprintf( " %9.3f %9.3fn",
  319. // loop_mops[section], loop_time[section], results[section]);
  320. // }
  321. //}
  322. //fflush(outfile);
  323. //rt_kprintf( "nMWIPS ");
  324. //rt_kprintf( "%9.3f%9.3fnn",mwips,TimeUsed);
  325. // rt_kprintf( "Resultstoloadtospreadsheet ");
  326. // rt_kprintf( " MWIPS Mflops1 Mflops2 Mflops3 Cosmops"
  327. // " ExpmopsFixpmops Ifmops Eqmopsn");
  328. //rt_kprintf( "Resultstoloadtospreadsheet ");
  329. // rt_kprintf( " %9.3f %9.3f %9.3f", mwips, loop_mflops[1],
  330. // loop_mflops[2]);
  331. // rt_kprintf( " %9.3f %9.3f %9.3f", loop_mflops[6],
  332. // loop_mops[5], loop_mops[8]);
  333. //rt_kprintf( " %9.3f %9.3f %9.3fnn", loop_mops[4],
  334. // loop_mops[3], loop_mops[7]);
  335. ///fflush(outfile);
  336. ///fclose (outfile);
  337. ///rt_kprintf ("n");
  338. ///rt_kprintf ("A new results file, whets.txt,will have been created in the samen");
  339. ///rt_kprintf ("directory as the .EXE files, if one did not already exist.nn");
  340. if (nopause)
  341. {
  342. rt_kprintf(" Press Enternn");
  343. i = getchar();
  344. }
  345. return 0;
  346. }
  347. void whetstones(long xtra, long x100, int calibrate)
  348. {
  349. long n1,n2,n3,n4,n5,n6,n7,n8,i,ix,n1mult;
  350. SPDP x,y,z;
  351. long j,k,l;
  352. SPDP e1[4];
  353. SPDP t =0.49999975;
  354. SPDP t0 = t;
  355. SPDP t1 = 0.50000025;
  356. SPDP t2 = 2.0;
  357. Check=0.0;
  358. n1 = 12*x100;
  359. n2 = 14*x100;
  360. n3 = 345*x100;
  361. n4 = 210*x100;
  362. n5 = 32*x100;
  363. n6 = 899*x100;
  364. n7 = 616*x100;
  365. n8 = 93*x100;
  366. n1mult = 10;
  367. /* Section 1, Array elements */
  368. e1[0] = 1.0;
  369. e1[1] = -1.0;
  370. e1[2] = -1.0;
  371. e1[3] = -1.0;
  372. start_time();
  373. {
  374. for (ix=0; ix;>
  375. {
  376. for(i=0; i*n1mult;>
  377. {
  378. e1[0] = (e1[0] + e1[1] + e1[2] - e1[3]) * t;
  379. e1[1] = (e1[0] + e1[1] - e1[2] + e1[3]) * t;
  380. e1[2] = (e1[0] - e1[1] + e1[2] + e1[3]) * t;
  381. e1[3] = (-e1[0] + e1[1] + e1[2] + e1[3]) * t;
  382. }
  383. t = 1.0 - t;
  384. }
  385. t =t0;
  386. }
  387. end_time();
  388. secs = secs/(SPDP)(n1mult);
  389. pout("N1 floating point",(float)(n1*16)*(float)(xtra),
  390. 1,e1[3],secs,calibrate,1);
  391. /* Section 2, Array as parameter */
  392. start_time();
  393. {
  394. for (ix=0; ix;>
  395. {
  396. for(i=0; i;>
  397. {
  398. pa(e1,t,t2);
  399. }
  400. t = 1.0 - t;
  401. }
  402. t =t0;
  403. }
  404. end_time();
  405. pout("N2 floating point",(float)(n2*96)*(float)(xtra),
  406. 1,e1[3],secs,calibrate,2);
  407. /* Section 3, Conditional jumps */
  408. j = 1;
  409. start_time();
  410. {
  411. for (ix=0; ix;>
  412. {
  413. for(i=0; i;>
  414. {
  415. if(j==1) j = 2;
  416. else j = 3;
  417. if(j>2) j = 0;
  418. else j = 1;
  419. if(j<1)? ?? ???j = 1;
  420. else j = 0;
  421. }
  422. }
  423. }
  424. end_time();
  425. pout("N3 if then else",(float)(n3*3)*(float)(xtra),
  426. 2,(SPDP)(j),secs,calibrate,3);
  427. /* Section 4, Integer arithmetic */
  428. j = 1;
  429. k = 2;
  430. l = 3;
  431. e1[0] = 0.0;
  432. e1[1] = 0.0;
  433. start_time();
  434. {
  435. for (ix=0; ix;>
  436. {
  437. for(i=0; i;>
  438. {
  439. j = j *(k-j)*(l-k);
  440. k = l * k - (l-j) * k;
  441. l = (l-k) * (k+j);
  442. e1[l-2] = e1[l-2] + j + k + l;
  443. e1[k-2] = e1[k-2] + j * k * l;
  444. //was e1[l-2] = j + k + l; ande1[k-2] = j * k * l;
  445. }
  446. }
  447. }
  448. end_time();
  449. x = (e1[0]+e1[1])/(SPDP)n4/(SPDP)xtra; // was x = e1[0]+e1[1];
  450. pout("N4 fixed point ",(float)(n4*15)*(float)(xtra),
  451. 2,x,secs,calibrate,4);
  452. /* Section 5, Trig functions */
  453. x = 0.5;
  454. y = 0.5;
  455. start_time();
  456. {
  457. for (ix=0; ix;>
  458. {
  459. for(i=1; i;>
  460. {
  461. x = t*atan(t2*sin(x)*cos(x)/(cos(x+y)+cos(x-y)-1.0));
  462. y = t*atan(t2*sin(y)*cos(y)/(cos(x+y)+cos(x-y)-1.0));
  463. }
  464. t = 1.0 - t;
  465. }
  466. t = t0;
  467. }
  468. end_time();
  469. pout("N5 sin,cos etc.",(float)(n5*26)*(float)(xtra),
  470. 2,y,secs,calibrate,5);
  471. /* Section 6, Procedure calls */
  472. x = 1.0;
  473. y = 1.0;
  474. z = 1.0;
  475. start_time();
  476. {
  477. for (ix=0; ix;>
  478. {
  479. for(i=0; i;>
  480. {
  481. p3(&x,&y,&z,t,t1,t2);
  482. }
  483. }
  484. }
  485. end_time();
  486. pout("N6 floating point",(float)(n6*6)*(float)(xtra),
  487. 1,z,secs,calibrate,6);
  488. /* Section 7, Array refrences */
  489. j = 0;
  490. k = 1;
  491. l = 2;
  492. e1[0] = 1.0;
  493. e1[1] = 2.0;
  494. e1[2] = 3.0;
  495. start_time();
  496. {
  497. for (ix=0; ix;>
  498. {
  499. for(i=0;i;i++)
  500. {
  501. po(e1,j,k,l);
  502. }
  503. }
  504. }
  505. end_time();
  506. pout("N7 assignments ",(float)(n7*3)*(float)(xtra),
  507. 2,e1[2],secs,calibrate,7);
  508. /* Section 8, Standard functions */
  509. x = 0.75;
  510. start_time();
  511. {
  512. for (ix=0; ix;>
  513. {
  514. for(i=0; i;>
  515. {
  516. x = sqrt(exp(log(x)/t1));
  517. }
  518. }
  519. }
  520. end_time();
  521. pout("N8 exp,sqrt etc. ",(float)(n8*4)*(float)(xtra),
  522. 2,x,secs,calibrate,8);
  523. return;
  524. }
  525. void pa(SPDP e[4], SPDP t, SPDP t2)
  526. {
  527. long j;
  528. for(j=0;j<6;j++)
  529. {
  530. e[0] = (e[0]+e[1]+e[2]-e[3])*t;
  531. e[1] = (e[0]+e[1]-e[2]+e[3])*t;
  532. e[2] = (e[0]-e[1]+e[2]+e[3])*t;
  533. e[3] = (-e[0]+e[1]+e[2]+e[3])/t2;
  534. }
  535. return;
  536. }
  537. void po(SPDP e1[4], long j, long k, long l)
  538. {
  539. e1[j] = e1[k];
  540. e1[k] = e1[l];
  541. e1[l] = e1[j];
  542. return;
  543. }
  544. void p3(SPDP *x, SPDP *y, SPDP *z, SPDP t, SPDP t1, SPDP t2)
  545. {
  546. *x = *y;
  547. *y = *z;
  548. *x = t * (*x + *y);
  549. *y = t1 * (*x + *y);
  550. *z = (*x + *y)/t2;
  551. return;
  552. }
  553. void pout(char* title, float ops, int type, SPDP checknum,
  554. SPDP time, int calibrate, int section)
  555. {
  556. SPDP mops,mflops;
  557. Check = Check + checknum;
  558. loop_time[section] = time;
  559. strcpy (headings[section],title);
  560. TimeUsed =TimeUsed + time;
  561. if (calibrate == 1)
  562. {
  563. results[section] = checknum;
  564. }
  565. if (calibrate == 0)
  566. {
  567. rt_kprintf("%s %13d ",headings[section],(int)(results[section]*1000));
  568. if (type == 1)
  569. {
  570. if (time>0)
  571. {
  572. mflops = ops/(1000000L*time);
  573. }
  574. else
  575. {
  576. mflops = 0;
  577. }
  578. loop_mops[section] = 99999;
  579. loop_mflops[section] = mflops;
  580. rt_kprintf(" %13d %13dn",
  581. (int)(loop_mflops[section]*1000), (int)(loop_time[section]*1000));
  582. }
  583. else
  584. {
  585. if (time>0)
  586. {
  587. mops = ops/(1000000L*time);
  588. }
  589. else
  590. {
  591. mops = 0;
  592. }
  593. loop_mops[section] = mops;
  594. loop_mflops[section] = 0;
  595. rt_kprintf(" %13d%13dn",
  596. (int)(loop_mops[section]), (int)(loop_time[section]*1000));
  597. }
  598. }
  599. return;
  600. }
復制代碼

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17171

    瀏覽量

    351519
  • 先楫半導體
    +關注

    關注

    10

    文章

    214

    瀏覽量

    2127
收藏 人收藏

    評論

    相關推薦

    HPM6E00技術日 | 百人研討共話工業應用創新及發展趨勢

    現場交流氛圍熱烈。 活動開場,半導體市場銷售執行副總裁陳丹率先發言:“從成立之初就一直致力于為中國市場提供具有創新價值的高
    發表于 09-02 10:14

    半導體hpm_apps v1.6.0上線

    半導體hpm_apps v1.6.0上線
    的頭像 發表于 08-02 08:18 ?857次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>hpm</b>_apps v1.6.0上線

    有獎提問!半導體HPM6E00系列新品發布會!!

    半導體HPM6E00新品預覽”的活動,盛況空前。 自此之后一直收到大家的信息,問什么時候能夠買到HPM6E00,這不,我們來了~
    發表于 06-20 11:45

    半導體與您相約嵌入式盛會embedded world China Conference2024

    》演講。分享半導體HPM5300到HPM6200,再到即將發布的HPM6E00系列MCU,
    的頭像 發表于 06-07 08:17 ?406次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>與您相約嵌入式盛會embedded world China Conference2024

    半導體所有開發已上RT-Thread主線啦

    目前,半導體在RT-Thread主線支持的開發包含以下這些
    的頭像 發表于 06-05 08:17 ?588次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>所有開發<b class='flag-5'>板</b>已上RT-Thread主線啦

    半導體 hpm_sdk v1.5.0 正式發布

    半導體 hpm_sdk v1.5.0 正式發布
    的頭像 發表于 04-12 08:17 ?609次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b> <b class='flag-5'>hpm</b>_sdk v1.5.0 正式發布

    半導體 hpm_sdk v1.5.0 正式發布

    半導體 hpm_sdk v1.5.0 正式發布!功能升級更強大 版本更新概況 新支持的IDE IAR Embedded Workbench for RISC-V (
    發表于 04-08 11:14

    引領極致視界——性能MCU HPM6800系列產品生態綻放,共鏈未來

    2024年3月28日,上海-國產高性能微控制器廠商上海半導體科技有限公司(
    的頭像 發表于 03-30 08:16 ?883次閱讀
    引領極致視界——<b class='flag-5'>先</b><b class='flag-5'>楫</b>高<b class='flag-5'>性能</b>MCU <b class='flag-5'>HPM</b>6800系列產品生態綻放,共鏈未來

    性能MCU HPM6800系列產品生態綻放,共鏈未來

    2024年3月28日,上海 - 國產高性能微控制器廠商上海半導體科技有限公司(
    的頭像 發表于 03-29 18:21 ?1077次閱讀

    半導體攜手立功科技推出了國產高性能微控制器HPM6800系列

    上海半導體科技有限公司(半導體,HPMicro)推出了國產高
    的頭像 發表于 03-13 12:24 ?889次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>攜手立功科技推出了國產高<b class='flag-5'>性能</b>微控制器<b class='flag-5'>HPM</b>6800系列

    基于HPM5300 RISC-V內核MCU的HPM5361EVK開發測評效果(二)

    HPM5361EVK是基于HPM5300系列高性能RISC-V內核MCU的一款開發
    的頭像 發表于 03-12 10:30 ?2969次閱讀
    基于<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM</b>5300 RISC-V內核MCU的<b class='flag-5'>HPM</b>5361EVK開發<b class='flag-5'>板</b>測評效果(二)

    HPM5361EVK開發,網友測評效果(二)

    上海半導體舉辦的HPM5361EVK開發試用活動圓滿結束,廣大工程師和愛好者們踴躍參與此次
    的頭像 發表于 03-12 08:16 ?2155次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM</b>5361EVK開發<b class='flag-5'>板</b>,網友測評效果(二)

    半導體推出了國產高性能微控制器HPM6800系列

    上海半導體科技有限公司(半導體,HPMicro)推出了國產高
    的頭像 發表于 03-07 12:30 ?1315次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>推出了國產高<b class='flag-5'>性能</b>微控制器<b class='flag-5'>HPM</b>6800系列

    芯原2.5D GPU IP賦能半導體HPM6800系列RISC-V MCU

    芯原股份(股票代碼:688521.SH)與半導體(簡稱“”)的合作,為高性能圖形處理領域
    的頭像 發表于 03-05 09:21 ?1004次閱讀

    HPM5361EVK開發試用體驗】(原創)5.手把手實戰AI機械臂

    與ChatGPT API結合,使機械臂能夠基于視覺信息和AI指令進行動作。 今天更新到這里... 謝謝! 接上四篇: 【HPM5361EVK開發
    發表于 02-06 10:28
    主站蜘蛛池模板: 开心色99xxxx开心色| bl肉yin荡受np各种play| 一二三四高清中文版视频| 成人无码在线视频区| 不卡一区二区高清观看视频| 精品一区二区三区高清免费观看| 九色91精品国产网站| 亚洲AV精品乱码专区| 国产精品高清在线观看93| 日韩美一区二区| vr亚洲成年网址在线观看| 欧美eee114| 99无人区码一码二码三| 欧美精品高潮呻吟AV久久| FREESEXVIDEO 性老少配| 欧美 亚洲 日韩 在线综合| 2019一級特黃色毛片免費看| 国产精品久久久久久久久久久 | 久久久久国产| 一品道门在线视频| 萝莉御姐被吸奶| 美女厕所撒尿ass| 最美白虎逼| 国产亚洲精品久久久久久久软件| 天龙八部慕容属性加点| 国产精品av免费观看| 久久婷婷五月综合色精品首页| 亚洲精品中文字幕一二三四区 | 精品国产在线手机在线| 十分钟免费观看大全视频| 在线看片福利无码网址| 毛片网站网址| 被爽到叫呻呤视频免费视频| 少妇无码吹潮久久精品AV网站| 最近中文字幕MV免费高清在线 | 1788福利视频在视频线| 久久精品亚洲| beeg日本老师按摩| 天天躁日日躁狠狠躁午夜剧场| 湖南电台在线收听| 67194免费入口|