国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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
    +關注

    關注

    147

    文章

    18925

    瀏覽量

    398232
  • 先楫半導體
    +關注

    關注

    12

    文章

    285

    瀏覽量

    3302
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【媒體視角】“五高一低” 筑核心,半導體助力具身智能行業新突破

    及嵌入式解決方案核心提供商,上海半導體科技有限公司(半導體、HPMicro)緊跟產業浪潮
    的頭像 發表于 01-30 09:51 ?1341次閱讀
    【媒體視角】“五高一低” 筑核心,<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>助力具身智能行業新突破

    CES2026:半導體隆重推出HPM5E3Y,打造機器人運動控制芯片陣容

    新紀元。作為高性能微控制器產品及嵌入式解決方案提供商,上海半導體科技有限公司 (
    的頭像 發表于 01-08 10:38 ?741次閱讀
    CES2026:<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>隆重推出<b class='flag-5'>HPM</b>5E3Y,打造機器人運動控制芯片陣容

    方案 | LED車尾燈純硬件高刷新率解決方案

    上海半導體科技有限公司(半導體,HPMicro)基于國產高
    的頭像 發表于 12-30 08:31 ?525次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>方案 | LED車尾燈純硬件高刷新率解決方案

    重磅更新 | 半導體HPM_APPS v1.10.1發布

    重磅更新 | 半導體HPM_APPS v1.10.1發布
    的頭像 發表于 12-26 08:33 ?880次閱讀
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>_APPS v1.10.1發布

    半導體榮膺“年度優秀AI機器人創新產品獎” | “芯”動力賦能產業升級

    2025年11月6日深圳,在業內知名媒體電子發燒友網主辦的第十三屆電機控制先進技術論壇上,上海半導體科技有限公司(
    的頭像 發表于 11-06 17:06 ?1505次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>榮膺“年度優秀AI機器人創新產品獎” | “芯”動力賦能產業升級

    半導體完成B+輪融資,中移和創投資加持

    2025年9月10日,上海|國產高性能MCU產品及嵌入式解決方案供應商“上海半導體科技有限公司”(
    的頭像 發表于 09-11 08:32 ?1449次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>完成B+輪融資,中移和創投資加持

    元禾控股投資半導體:國產高性能MCU駛入機器人控制“快車道”

    RISC-V高性能芯片賽道。此次融資不僅是對半導體企業技術實力的認可,更標志著我們開啟在機器人控制領域從“蓄勢待發”到逼近爆發臨界點的新篇章。隨著全球智能機器人產
    的頭像 發表于 09-08 08:35 ?3399次閱讀
    元禾控股投資<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>:國產高<b class='flag-5'>性能</b>MCU駛入機器人控制“快車道”

    半導體高性能MCU入駐立創商城,國產芯勢力再添新動能

    半導體(HPMicro)宣布其全系列高性能MCU芯片正式上架立創商城(LCSC),標志著國產高端MCU在供應鏈渠道與生態服務方面邁上新臺階,國產芯勢力再添新動能。
    的頭像 發表于 07-31 08:32 ?1183次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體高性能</b>MCU入駐立創商城,國產芯勢力再添新動能

    國產“HPM芯”賦能機器人關節,半導體亮相松山湖IC創新論壇

    。高性能微控制器產品及嵌入式解決方案提供商“上海半導體科技有限公司”(
    的頭像 發表于 05-14 15:53 ?1422次閱讀
    國產“<b class='flag-5'>HPM</b>芯”賦能機器人關節,<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>亮相松山湖IC創新論壇

    半導體HPM6E8Y:實時控制芯片驅動的機器人關節“芯”時代

    及產品總監費振東帶來了一款實時控制芯片驅動——HPM6E8Y。 ? ? 據費振東介紹,半導體HPM6E8Y系列高
    發表于 05-13 11:50 ?1797次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>6E8Y:<b class='flag-5'>先</b><b class='flag-5'>楫</b>實時控制芯片驅動的機器人關節“芯”時代

    重磅更新 | 半導體HPM_APPS v1.9.0發布

    重磅更新 | 半導體HPM_APPS v1.9.0發布
    的頭像 發表于 05-13 11:29 ?1786次閱讀
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>_APPS v1.9.0發布

    【強勢上新】HPM5E00:EtherCAT運動控制MCU,半導體再拓工業總線產品新版圖

    2025年5月6日 上海 |高性能微控制器及嵌入式解決方案提供商“上海半導體科技有限公司”(
    發表于 05-07 14:07 ?1133次閱讀
    【強勢上新】<b class='flag-5'>HPM</b>5E00:EtherCAT運動控制MCU,<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>再拓工業總線產品新版圖

    【強勢上新】HPM5E00:EtherCAT運動控制MCU,半導體再拓工業總線產品新版圖

    2025年5月6日上海|高性能微控制器及嵌入式解決方案提供商“上海半導體科技有限公司”(
    的頭像 發表于 05-06 11:09 ?1339次閱讀
    【強勢上新】<b class='flag-5'>HPM</b>5E00:EtherCAT運動控制MCU,<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b>再拓工業總線產品新版圖

    重磅更新 | 半導體HPM_SDK v1.9.0 發布

    版本更新概況[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了開發已知問題說明[Update]將全系列開發VCore電壓調節至1.275V,
    的頭像 發表于 04-02 08:31 ?1096次閱讀
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半導體</b><b class='flag-5'>HPM</b>_SDK v1.9.0 發布

    600MHz RISC-V 雙核加持!HPM6P00重新定義國產高性能混合信號MCU

    2025年3月25日,上海——高性能微控制器及嵌入式解決方案提供商上海半導體科技有限公司(
    的頭像 發表于 03-25 08:50 ?1337次閱讀
    600MHz RISC-V 雙核加持!<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM</b>6P00重新定義國產高<b class='flag-5'>性能</b>混合信號MCU