[{"data":1,"prerenderedAt":2268},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng\u002F0325-linux-huan-jing-da-jian-xin":3,"wiki-doc-items-2024-01-21-arm-keil-mdk6-jiao-cheng":2212,"wiki:author-members":2256},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":2199,"chapterOrder":2200,"date":2201,"description":23,"docKey":2202,"docRoot":2203,"docTitle":2204,"extension":2205,"isWikiDoc":1765,"isWikiIndex":2206,"meta":2207,"navigation":1765,"path":2208,"seo":2209,"stem":2210,"wikiDepth":138,"__hash__":2211},"wiki\u002Fwiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002F0325-Linux环境搭建（新）.md","Linux环境搭建（新）",[7],"董佳辉",{"type":9,"value":10,"toc":2189},"minimark",[11,24,28,31,44,47,50,70,73,78,85,88,96,101,106,111,114,119,126,147,154,163,168,171,176,182,202,207,210,215,222,227,230,235,238,243,246,251,254,262,265,272,388,391,396,401,405,411,416,419,422,427,438,446,449,467,472,475,484,489,492,498,501,506,509,514,517,522,525,532,537,540,547,551,554,592,595,602,610,613,619,624,627,630,633,640,662,667,677,682,690,695,709,719,724,727,730,737,742,747,750,755,759,764,767,773,778,783,790,795,802,818,821,826,832,837,840,845,849,852,858,864,869,875,880,884,889,893,907,909,914,918,923,925,930,937,943,947,950,953,958,975,978,981,986,1023,1027,1030,1035,1038,1041,1046,1051,1056,1061,1064,1069,1074,1077,1133,1149,1152,1160,1163,1168,1175,1180,1183,1190,1195,1201,1206,1209,1214,1217,1222,1225,1230,1237,1242,1246,1250,1254,1260,1265,1272,1275,1281,1286,1296,1301,1307,1312,1323,1328,1335,1340,1345,1348,1353,1358,1379,1382,1387,1395,1400,1405,1407,1412,1417,1419,1424,1430,1435,1438,1444,1452,1457,1459,1469,1472,1475,1481,1487,1527,1559,1562,1565,1570,1573,1578,1581,1585,1589,1595,1609,1640,1643,1649,1655,1659,1672,1678,1683,1688,1692,1695,1701,1713,1716,1727,1730,1844,1847,1853,1858,1861,1884,1889,1912,1917,1926,1931,1937,1942,1945,1950,1953,1958,1964,1970,2149,2151,2156,2160,2166,2180,2185],[12,13,14],"p",{},[15,16,17],"em",{},[18,19,20],"strong",{},[21,22,23],"code",{},"（本教程为2026年9月创建的，可能与以后的版本有些出入）",[25,26,27],"h3",{"id":27},"环境介绍",[12,29,30],{},"本教程环境介绍：",[32,33,34,38,41],"ol",{},[35,36,37],"li",{},"系统：Fedora 44 KDE Edition Linux",[35,39,40],{},"系统内核：Linux 7.2.6-200.fc44.x86_64",[35,42,43],{},"架构：X86_64(amd64)",[12,45,46],{},"其他Linux环境也可以。",[25,48,49],{"id":49},"需要准备的东西",[32,51,52,55,58,61,64,67],{},[35,53,54],{},"一台Linux电脑",[35,56,57],{},"一块STM32F4及以上的板子(目前STM32F1使用MDK6比较麻烦)",[35,59,60],{},"CubeMX最新版",[35,62,63],{},"VScode最新版",[35,65,66],{},"pyOcd（如何安装下方有教程）",[35,68,69],{},"ST-Link驱动（如何安装下方有教程）",[25,71,72],{"id":72},"安装各种软件与环境",[74,75,77],"h4",{"id":76},"安装cubemx","安装CubeMX",[12,79,80],{},[81,82],"img",{"alt":83,"src":84},"","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage9.webp",[12,86,87],{},"下载地址：",[12,89,90],{},[91,92,93],"a",{"href":93,"rel":94},"https:\u002F\u002Fwww.st.com.cn\u002Fzh\u002Fdevelopment-tools\u002Fstm32cubemx.html",[95],"nofollow",[12,97,98],{},[18,99,100],{},"推荐下载最新版本（此时最新版本是6.15.0）",[12,102,103],{},[81,104],{"alt":83,"src":105},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage10.webp",[12,107,108],{},[81,109],{"alt":83,"src":110},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage11.webp",[12,112,113],{},"解压出来",[12,115,116],{},[81,117],{"alt":83,"src":118},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage12.webp",[12,120,121,122,125],{},"用root权限打开这个软件",[21,123,124],{},"SetupSTM32CubeMX-6.18_1","（不建议）",[127,128,132],"pre",{"className":129,"code":130,"language":131,"meta":83,"style":83},"language-bash shiki shiki-themes github-light github-dark","sudo .\u002FSetupSTM32CubeMX-6.18_1\n","bash",[21,133,134],{"__ignoreMap":83},[135,136,139,143],"span",{"class":137,"line":138},"line",1,[135,140,142],{"class":141},"sScJk","sudo",[135,144,146],{"class":145},"sZZnC"," .\u002FSetupSTM32CubeMX-6.18_1\n",[12,148,149,150,153],{},"（更建议：也可以不用root权限打开，但在选择安装路径的时候注意以下，自己改成",[21,151,152],{},"\u002Fhome\u002Fxxx","里的某个文件夹里）",[127,155,157],{"className":129,"code":156,"language":131,"meta":83,"style":83},".\u002FSetupSTM32CubeMX-6.18_1\n",[21,158,159],{"__ignoreMap":83},[135,160,161],{"class":137,"line":138},[135,162,156],{"class":141},[12,164,165],{},[81,166],{"alt":83,"src":167},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage13.webp",[12,169,170],{},"在新弹出的界面一直点下一步就行，安装结束后出现如下图就成功了。",[12,172,173],{},[81,174],{"alt":83,"src":175},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage14.webp",[12,177,178,181],{},[21,179,180],{},"\u002Fusr\u002Flocal\u002FSTMicroelectronics\u002FSTM32Cube\u002FSTM32CubeMX","（如果你不是root权限安装的，你的路径不是这个，需要选择对应的路径）进入这个文件夹，然后打开终端输入",[127,183,187],{"className":184,"code":185,"language":186,"meta":83,"style":83},"language-cpp shiki shiki-themes github-light github-dark",".\u002FSTM32CubeMX\n","cpp",[21,188,189],{"__ignoreMap":83},[135,190,191,195,199],{"class":137,"line":138},[135,192,194],{"class":193},"sVt8B",".",[135,196,198],{"class":197},"szBVR","\u002F",[135,200,201],{"class":193},"STM32CubeMX\n",[12,203,204],{},[81,205],{"alt":83,"src":206},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage15.webp",[12,208,209],{},"点击Help",[12,211,212],{},[81,213],{"alt":83,"src":214},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage16.webp",[12,216,217,218,221],{},"选",[21,219,220],{},"Manage embedded software packages","，把STM32F1，F4，H7的第一个最新的固件勾上。",[12,223,224],{},[81,225],{"alt":83,"src":226},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage17.webp",[12,228,229],{},"点install",[12,231,232],{},[81,233],{"alt":83,"src":234},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage18.webp",[12,236,237],{},"登陆上账号",[12,239,240],{},[81,241],{"alt":83,"src":242},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage19.webp",[12,244,245],{},"然后等下载和安装完",[12,247,248],{},[81,249],{"alt":83,"src":250},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage20.webp",[12,252,253],{},"下载好就行了。",[12,255,256,257,261],{},"接下来可以把CubeMX应用配置一个桌面快捷方式等可以快速打开，教程详见",[91,258,260],{"href":259},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0600-qi-ta-ke-xuan-pei-zhi#appimage","Vinci机器人队Linux入门教程","的Appimage章节，可以用ctrl+F快速定位该章节。",[12,263,264],{},"桌面快捷方式如下：",[12,266,267,268,271],{},"（如果你不是root权限安装的，你的路径不是这个",[21,269,270],{},"\u002Fusr\u002Flocal\u002FSTMicroelectronics\u002FSTM32Cube\u002FSTM32CubeMX\u002F","，需要选择对应的路径）",[127,273,275],{"className":129,"code":274,"language":131,"meta":83,"style":83},"[Desktop Entry]\nName=STM32CubeMX\nExec=\u002Fusr\u002Flocal\u002FSTMicroelectronics\u002FSTM32Cube\u002FSTM32CubeMX\u002FSTM32CubeMX\nIcon=\u002Fusr\u002Flocal\u002FSTMicroelectronics\u002FSTM32Cube\u002FSTM32CubeMX\u002Fhelp\u002FSTM32CubeMX.png\nType=Application\nCategories=Development;Electronics;Embedded;\nComment=STM32CubeMX configuration and code generation tool\nTerminal=false\n",[21,276,277,282,293,304,315,326,351,377],{"__ignoreMap":83},[135,278,279],{"class":137,"line":138},[135,280,281],{"class":193},"[Desktop Entry]\n",[135,283,285,288,291],{"class":137,"line":284},2,[135,286,287],{"class":193},"Name",[135,289,290],{"class":197},"=",[135,292,201],{"class":145},[135,294,296,299,301],{"class":137,"line":295},3,[135,297,298],{"class":193},"Exec",[135,300,290],{"class":197},[135,302,303],{"class":145},"\u002Fusr\u002Flocal\u002FSTMicroelectronics\u002FSTM32Cube\u002FSTM32CubeMX\u002FSTM32CubeMX\n",[135,305,307,310,312],{"class":137,"line":306},4,[135,308,309],{"class":193},"Icon",[135,311,290],{"class":197},[135,313,314],{"class":145},"\u002Fusr\u002Flocal\u002FSTMicroelectronics\u002FSTM32Cube\u002FSTM32CubeMX\u002Fhelp\u002FSTM32CubeMX.png\n",[135,316,318,321,323],{"class":137,"line":317},5,[135,319,320],{"class":193},"Type",[135,322,290],{"class":197},[135,324,325],{"class":145},"Application\n",[135,327,329,332,334,337,340,343,345,348],{"class":137,"line":328},6,[135,330,331],{"class":193},"Categories",[135,333,290],{"class":197},[135,335,336],{"class":145},"Development",[135,338,339],{"class":193},";",[135,341,342],{"class":141},"Electronics",[135,344,339],{"class":193},[135,346,347],{"class":141},"Embedded",[135,349,350],{"class":193},";\n",[135,352,354,357,359,362,365,368,371,374],{"class":137,"line":353},7,[135,355,356],{"class":193},"Comment",[135,358,290],{"class":197},[135,360,361],{"class":145},"STM32CubeMX",[135,363,364],{"class":141}," configuration",[135,366,367],{"class":145}," and",[135,369,370],{"class":145}," code",[135,372,373],{"class":145}," generation",[135,375,376],{"class":145}," tool\n",[135,378,380,383,385],{"class":137,"line":379},8,[135,381,382],{"class":193},"Terminal",[135,384,290],{"class":197},[135,386,387],{"class":145},"false\n",[12,389,390],{},"根据教程做，就可以实现这种效果啦。",[12,392,393],{},[81,394],{"alt":83,"src":395},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage21.webp",[12,397,398],{},[81,399],{"alt":83,"src":400},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage22.webp",[74,402,404],{"id":403},"安装vscode","安装VScode",[12,406,407],{},[91,408,409],{"href":409,"rel":410},"https:\u002F\u002Fcode.visualstudio.com\u002FDownload",[95],[12,412,413],{},[81,414],{"alt":83,"src":415},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage23.webp",[12,417,418],{},"如果是debian系下载deb,如果是rhel系下载rpm.",[12,420,421],{},"下载完之后，点击浏览器，找到这个安装包的文件夹，并在该路径打开终端。",[12,423,424],{},[81,425],{"alt":83,"src":426},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage24.webp",[12,428,429,430,433,434,437],{},"Debian系：输入",[21,431,432],{},"sudo apt install .\u002Fcode","然后按",[21,435,436],{},"tab","按键补齐文件名，回车。",[12,439,440,441,433,444,437],{},"RHEL系：输入",[21,442,443],{},"sudo dnf install .\u002Fcode",[21,445,436],{},[12,447,448],{},"例如补齐后的：",[127,450,452],{"className":129,"code":451,"language":131,"meta":83,"style":83},"sudo dnf install .\u002Fcode-1.102.1-1752598767.el8.x86_64.rpm\n",[21,453,454],{"__ignoreMap":83},[135,455,456,458,461,464],{"class":137,"line":138},[135,457,142],{"class":141},[135,459,460],{"class":145}," dnf",[135,462,463],{"class":145}," install",[135,465,466],{"class":145}," .\u002Fcode-1.102.1-1752598767.el8.x86_64.rpm\n",[12,468,469],{},[81,470],{"alt":83,"src":471},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage25.webp",[12,473,474],{},"然后打开VScode，在终端输入下面的命令",[127,476,478],{"className":129,"code":477,"language":131,"meta":83,"style":83},"code\n",[21,479,480],{"__ignoreMap":83},[135,481,482],{"class":137,"line":138},[135,483,477],{"class":141},[12,485,486],{},[81,487],{"alt":83,"src":488},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2025\u002F07\u002F18\u002Fimage26.webp",[12,490,491],{},"然后可以配置一个环境单独给Keil Studio(MDK v6)插件使用，避免和默认环境冲突。",[12,493,494],{},[81,495],{"alt":496,"src":497},"alt text","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2026\u002F04\u002F17\u002F1776420070033.webp",[12,499,500],{},"进行一些设置，按我的来就可以。",[12,502,503],{},[81,504],{"alt":83,"src":505},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790746466196-6a4b4127.webp",[12,507,508],{},"创建后选配置：",[12,510,511],{},[81,512],{"alt":83,"src":513},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790746491598-a2ba8e1c.webp",[12,515,516],{},"选中他",[12,518,519],{},[81,520],{"alt":83,"src":521},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790746516609-c1e03243.webp",[74,523,524],{"id":524},"安装插件",[12,526,527,528,531],{},"搜索",[21,529,530],{},"keil studio pack","安装第一个即可",[12,533,534],{},[81,535],{"alt":83,"src":536},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790746693994-45ad4e57.webp",[25,538,539],{"id":539},"环境配置",[12,541,542,543],{},"官方教程:",[91,544,545],{"href":545,"rel":546},"https:\u002F\u002Fmdk-packs.github.io\u002Fvscode-cmsis-solution-docs\u002Finstallation.html",[95],[74,548,550],{"id":549},"cubemx路径配置","CubeMX路径配置:",[12,552,553],{},"打开一个终端:",[127,555,557],{"className":129,"code":556,"language":131,"meta":83,"style":83},"find ~\u002F \u002Fusr\u002Flocal \u002Fopt -type f -name STM32CubeMX 2>\u002Fdev\u002Fnull\n",[21,558,559],{"__ignoreMap":83},[135,560,561,564,567,570,573,577,580,583,586,589],{"class":137,"line":138},[135,562,563],{"class":141},"find",[135,565,566],{"class":145}," ~\u002F",[135,568,569],{"class":145}," \u002Fusr\u002Flocal",[135,571,572],{"class":145}," \u002Fopt",[135,574,576],{"class":575},"sj4cs"," -type",[135,578,579],{"class":145}," f",[135,581,582],{"class":575}," -name",[135,584,585],{"class":145}," STM32CubeMX",[135,587,588],{"class":197}," 2>",[135,590,591],{"class":145},"\u002Fdev\u002Fnull\n",[12,593,594],{},"一般会输出你的CubeMX可执行文件的目录,比如:",[127,596,600],{"className":597,"code":303,"language":599,"meta":83},[598],"language-text","text",[21,601,303],{"__ignoreMap":83},[12,603,604,605,607,608,194],{},"那么你复制",[21,606,180],{},"即可,不要复制最后一个",[21,609,361],{},[12,611,612],{},"打开VScode设置:",[12,614,527,615,618],{},[21,616,617],{},"CMSIS Solution Environment Variables",":",[12,620,621],{},[81,622],{"alt":83,"src":623},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790754740299-66ae6315.webp",[12,625,626],{},"添加完毕后关掉这个界面即可",[25,628,629],{"id":629},"创建一个简单的例程",[74,631,632],{"id":632},"创建一个工程",[12,634,635,636,639],{},"点击侧边栏的",[21,637,638],{},"CMSIS",",如下图，",[641,642,643,650,659],"ul",{},[35,644,645,646,649],{},"第一个是 创建",[21,647,648],{},"keil mdk6","工程",[35,651,652,653,656,657,649],{},"第二个是 把",[21,654,655],{},"keil mdk5","的工程转化为",[21,658,648],{},[35,660,661],{},"第三个是浏览各种arm例程",[12,663,664],{},[81,665],{"alt":83,"src":666},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790746869807-2ea43778.webp",[12,668,669,670,673,674],{},"选择",[21,671,672],{},"Create New Solution","后,选择 Device，然后搜索芯片，例如",[21,675,676],{},"stm32f407ig",[12,678,679],{},[81,680],{"alt":83,"src":681},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790748945865-5af58a97.webp",[12,683,684,669,687],{},[21,685,686],{},"Templates",[21,688,689],{},"CubeMX Basic solution",[12,691,692],{},[81,693],{"alt":83,"src":694},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790750394664-40418157.webp",[641,696,697,703],{},[35,698,699,702],{},[21,700,701],{},"Solution Base Folder","：workspace 所在目录，可以包含多个 project\u002Fsolution.(工程文件夹所在的目录)",[35,704,705,708],{},[21,706,707],{},"Solution Sub Folder","：通常是 workspace 下的一个子目录。(工程文件夹名字)",[12,710,711,712,715,716],{},"我这里选择了",[21,713,714],{},"\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FMDK6Projects\u002F","存放工程。（你任选一个空的你自己创建的纯英文路径的文件夹存放即可）\n然后工程名叫做",[21,717,718],{},"mdk6_test",[12,720,721],{},[81,722],{"alt":83,"src":723},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790750996238-86c08a1b.webp",[12,725,726],{},"点击创建后VScode工作区会自动跳转到工程文件夹.",[74,728,729],{"id":729},"添加许可",[12,731,732,733,736],{},"可能右下角会提示让你加许可,虽然咱没用",[21,734,735],{},"armclang(ac6)",",他也会要,但是实际上你不给许可也可以,但可以给个社区许可,照下图这样点击即可.",[12,738,739],{},[81,740],{"alt":83,"src":741},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790751164769-f8068ca7.webp",[12,743,744],{},[81,745],{"alt":83,"src":746},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790751207320-19e7b7b3.webp",[12,748,749],{},"许可成功",[12,751,752],{},[81,753],{"alt":83,"src":754},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790751271889-9a94dca9.webp",[74,756,758],{"id":757},"pack安装","Pack安装",[760,761,763],"h5",{"id":762},"安装cmsis","安装CMSIS",[12,765,766],{},"先打开下面这个网站:",[12,768,769],{},[91,770,771],{"href":771,"rel":772},"https:\u002F\u002Fwww.keil.arm.com\u002Fpacks",[95],[12,774,527,775,777],{},[21,776,638],{},",",[12,779,780],{},[81,781],{"alt":83,"src":782},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790751475734-9ecdf88c.webp",[12,784,785,786,789],{},"复制",[21,787,788],{},"cpackget add","命令",[12,791,792],{},[81,793],{"alt":83,"src":794},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790751527200-87c2cccd.webp",[12,796,797,798,801],{},"按",[21,799,800],{},"ctrl + ~","来开关VScode自带的终端,在终端里敲自己复制的那条命令,比如:",[127,803,805],{"className":129,"code":804,"language":131,"meta":83,"style":83},"cpackget add ARM::CMSIS@6.3.0\n",[21,806,807],{"__ignoreMap":83},[135,808,809,812,815],{"class":137,"line":138},[135,810,811],{"class":141},"cpackget",[135,813,814],{"class":145}," add",[135,816,817],{"class":145}," ARM::CMSIS@6.3.0\n",[12,819,820],{},"他会开始猛猛下载:",[12,822,823],{},[81,824],{"alt":83,"src":825},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790751645053-b88d44f9.webp",[12,827,828,829],{},"这里键盘上按",[21,830,831],{},"A",[12,833,834],{},[81,835],{"alt":83,"src":836},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790751654385-fd2d4aac.webp",[12,838,839],{},"安装完毕:",[12,841,842],{},[81,843],{"alt":83,"src":844},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790751666419-14a1a6f7.webp",[760,846,848],{"id":847},"安装设备dfp","安装设备DFP",[12,850,851],{},"再打开下面这个网站:",[12,853,854],{},[91,855,856],{"href":856,"rel":857},"https:\u002F\u002Fwww.keil.arm.com\u002Fdevices",[95],[12,859,860,861],{},"搜索选中你想要的设备,这里比如",[21,862,863],{},"STM32F407IGHx",[12,865,866],{},[81,867],{"alt":83,"src":868},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790749595498-4a2cb712.webp",[12,870,871,872,618],{},"点击那个",[21,873,874],{},"CMSIS Pack",[12,876,877],{},[81,878],{"alt":83,"src":879},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790749629848-9ebec443.webp",[12,881,785,882,789],{},[21,883,788],{},[12,885,886],{},[81,887],{"alt":83,"src":888},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790749765582-ca1c4117.webp",[12,890,797,891,801],{},[21,892,800],{},[127,894,896],{"className":129,"code":895,"language":131,"meta":83,"style":83},"cpackget add Keil::STM32F4xx_DFP@3.1.1\n",[21,897,898],{"__ignoreMap":83},[135,899,900,902,904],{"class":137,"line":138},[135,901,811],{"class":141},[135,903,814],{"class":145},[135,905,906],{"class":145}," Keil::STM32F4xx_DFP@3.1.1\n",[12,908,820],{},[12,910,911],{},[81,912],{"alt":83,"src":913},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790749862696-773b03ea.webp",[12,915,828,916],{},[21,917,831],{},[12,919,920],{},[81,921],{"alt":83,"src":922},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790749714198-99faa178.webp",[12,924,839],{},[12,926,927],{},[81,928],{"alt":83,"src":929},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790749738489-ac8e3704.webp",[12,931,932,933,936],{},"然后",[21,934,935],{},"Ctrl + Shift + P","搜索：",[127,938,941],{"className":939,"code":940,"language":599,"meta":83},[598],"developer:reload window\n",[21,942,940],{"__ignoreMap":83},[74,944,946],{"id":945},"打开cubemx生成器","打开CubeMX生成器",[760,948,949],{"id":949},"图形化",[12,951,952],{},"直接点击:",[12,954,955],{},[81,956],{"alt":83,"src":957},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790757181232-ffb96987.webp",[12,959,960,961,964,965,968,969,974],{},"如果界面弹不出,实测",[21,962,963],{},"Arm CMSIS Solution 1.70.0","可以弹出来,而",[21,966,967],{},"Arm CMSIS Solution 1.72.0","弹不出来,这可能是个bug(",[91,970,973],{"href":971,"rel":972},"https:\u002F\u002Fgithub.com\u002FOpen-CMSIS-Pack\u002Fvscode-cmsis-solution\u002Fissues\u002F550",[95],"Issue #550","),可以先降级或者直接用终端打开CubeMX.",[760,976,977],{"id":977},"终端",[12,979,980],{},"出现下面这种问题,你只能在终端里打开CubeMX了:",[12,982,983],{},[81,984],{"alt":83,"src":985},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790754816902-d21711c3.webp",[127,987,989],{"className":129,"code":988,"language":131,"meta":83,"style":83},"csolution CubeMX.csolution.yml run \\\n  -g CubeMX \\\n  -a STM32F407IGHx\n",[21,990,991,1005,1015],{"__ignoreMap":83},[135,992,993,996,999,1002],{"class":137,"line":138},[135,994,995],{"class":141},"csolution",[135,997,998],{"class":145}," CubeMX.csolution.yml",[135,1000,1001],{"class":145}," run",[135,1003,1004],{"class":575}," \\\n",[135,1006,1007,1010,1013],{"class":137,"line":284},[135,1008,1009],{"class":575},"  -g",[135,1011,1012],{"class":145}," CubeMX",[135,1014,1004],{"class":575},[135,1016,1017,1020],{"class":137,"line":295},[135,1018,1019],{"class":575},"  -a",[135,1021,1022],{"class":145}," STM32F407IGHx\n",[74,1024,1026],{"id":1025},"用cubemx配置工程这玩意不用教吧自己配置吧","用CubeMX配置工程(这玩意不用教吧,自己配置吧)",[12,1028,1029],{},"顺利弹出CubeMX:",[12,1031,1032],{},[81,1033],{"alt":83,"src":1034},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790754949023-e0a8e34e.webp",[12,1036,1037],{},"接下来进行配置,",[12,1039,1040],{},"我这里主要配置了如下设置:",[12,1042,1043],{},[81,1044],{"alt":83,"src":1045},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755331564-b4fbfcf0.webp",[12,1047,1048],{},[81,1049],{"alt":83,"src":1050},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755345215-e5e4287e.webp",[12,1052,1053],{},[81,1054],{"alt":83,"src":1055},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755380157-7c80a3ee.webp",[12,1057,1058],{},[81,1059],{"alt":83,"src":1060},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755393977-6b3d2c0c.webp",[12,1062,1063],{},"并开启了一个LED做测试",[12,1065,1066],{},[81,1067],{"alt":83,"src":1068},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755464472-dc1bb359.webp",[12,1070,1071],{},[81,1072],{"alt":83,"src":1073},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755413257-d5e5bbf4.webp",[12,1075,1076],{},"配置完毕后,注意这里的设置也要根据下图进行修改:",[1078,1079,1080,1093],"table",{},[1081,1082,1083],"thead",{},[1084,1085,1086,1090],"tr",{},[1087,1088,1089],"th",{},"你在 MDK6\u002Fcsolution 里选的编译器",[1087,1091,1092],{},"CubeMX 侧对应工具链",[1094,1095,1096,1109,1121],"tbody",{},[1084,1097,1098,1104],{},[1099,1100,1101],"td",{},[21,1102,1103],{},"AC6",[1099,1105,1106],{},[21,1107,1108],{},"MDK-ARM",[1084,1110,1111,1116],{},[1099,1112,1113],{},[21,1114,1115],{},"IAR",[1099,1117,1118],{},[21,1119,1120],{},"EWARM",[1084,1122,1123,1128],{},[1099,1124,1125],{},[21,1126,1127],{},"GCC",[1099,1129,1130],{},[21,1131,1132],{},"STM32CubeIDE \u002F Makefile \u002F CMake",[12,1134,1135,1136,1139,1140,1142,1143,1145,1146,1148],{},"我这里选择",[21,1137,1138],{},"STM32CubeIDE","(因为官方例程就是拿",[21,1141,1138],{},"举的例子),我也只测试过",[21,1144,1138],{},"没问题,其他俩选项你自己自测,但其实没必要,选",[21,1147,1138],{},"就行.",[12,1150,1151],{},"而 ST 官方对 Generate Under Root 的定义是：",[641,1153,1154,1157],{},[35,1155,1156],{},"✅ 勾上：把 STM32CubeIDE 的工程文件直接扔到 CubeMX 项目根目录",[35,1158,1159],{},"❌ 不勾：生成独立的 STM32CubeIDE\u002F 工具链目录",[12,1161,1162],{},"所以我们不勾选.",[12,1164,1165],{},[81,1166],{"alt":83,"src":1167},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790765660141-2c2d7237.webp",[12,1169,1170,1171,1174],{},"这里会有个问题,在GCC编译器(只要你使用GCC\u002Fnewlib + FreeRTOS)下,需要开启",[21,1172,1173],{},"configUSE_NEWLIB_REENTRANT",",所以咱们需要先去FreeRTOS设置里先设置一下:",[12,1176,1177],{},[81,1178],{"alt":83,"src":1179},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790765952226-40d23e60.webp",[74,1181,1182],{"id":1182},"下载固件与生成配置",[12,1184,1185,1186,1189],{},"点击",[21,1187,1188],{},"generate code","后,如果弹出来要你下载FW,你就选yes.",[12,1191,1192],{},[81,1193],{"alt":83,"src":1194},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755537530-84a80eb6.webp",[12,1196,1197,1198],{},"下面这个选",[21,1199,1200],{},"don't ask me again",[12,1202,1203],{},[81,1204],{"alt":83,"src":1205},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755596677-660a4557.webp",[12,1207,1208],{},"他会自动开始下载固件(看你网络环境如何了,一般裸连是可以的,必要时可以采取一些那什么手段)",[12,1210,1211],{},[81,1212],{"alt":83,"src":1213},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755624439-7506dea8.webp",[12,1215,1216],{},"同意下许可",[12,1218,1219],{},[81,1220],{"alt":83,"src":1221},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755949031-0c50f676.webp",[12,1223,1224],{},"会自动开始解压",[12,1226,1227],{},[81,1228],{"alt":83,"src":1229},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790755962433-f7ceb5f1.webp",[12,1231,1232,1233,1236],{},"这样代码就生成完毕了,点击",[21,1234,1235],{},"close",",并关闭CubeMX",[12,1238,1239],{},[81,1240],{"alt":83,"src":1241},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790756349512-b239e26f.webp",[74,1243,1245],{"id":1244},"修改配置","修改配置:",[760,1247,1249],{"id":1248},"arm-tools-环境配置","Arm Tools 环境配置",[12,1251,932,1252,936],{},[21,1253,935],{},[127,1255,1258],{"className":1256,"code":1257,"language":599,"meta":83},[598],"Arm Tools: Configure Arm Tools Environment\n",[21,1259,1257],{"__ignoreMap":83},[12,1261,1262],{},[81,1263],{"alt":83,"src":1264},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790747443747-5d11b38b.webp",[12,1266,1267,1268,1271],{},"进入 ",[18,1269,1270],{},"Arm Tools Environment Manager","。",[12,1273,1274],{},"至少安装：",[127,1276,1279],{"className":1277,"code":1278,"language":599,"meta":83},[598],"Arm CMSIS-Toolbox\nMDK-Toolbox\nGCC compiler for ARM CPUs\nKitware's CMake tool\nNinja Build\n",[21,1280,1278],{"__ignoreMap":83},[32,1282,1283],{},[35,1284,1285],{},"Arm CMSIS-Toolbox",[12,1287,1288,1289,1291,1292,1295],{},"找到",[21,1290,1285],{},"，选择",[21,1293,1294],{},"2.15.0","，这个版本尽量可以先选这个，后续你明白这玩意是干啥的了，再选择其他版本。",[12,1297,1298],{},[81,1299],{"alt":83,"src":1300},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790747620876-4986789f.webp",[12,1302,1303,1304],{},"弹出来的界面一直选",[21,1305,1306],{},"总是允许",[12,1308,1309],{},[81,1310],{"alt":83,"src":1311},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790747535225-b294f999.webp",[12,1313,1314,1315,1318,1319,1322],{},"弹出来的这个",[21,1316,1317],{},"vcpkg-configuration.json","你用",[21,1320,1321],{},"Ctrl + S","帮他保存一下",[12,1324,1325],{},[81,1326],{"alt":83,"src":1327},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790747933728-ef57b00d.webp",[12,1329,1330,1331,1334],{},"左下角这里会开始下载,当下载完毕会出现",[21,1332,1333],{},"Arm Tools:x","如下图:",[12,1336,1337],{},[81,1338],{"alt":83,"src":1339},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790747971746-92526292.webp",[32,1341,1342],{"start":284},[35,1343,1344],{},"MDK-Toolbox",[12,1346,1347],{},"选最新版即可",[12,1349,1350],{},[81,1351],{"alt":83,"src":1352},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790763054589-20bdad6b.webp",[32,1354,1355],{"start":295},[35,1356,1357],{},"GCC compiler for ARM CPUs",[1359,1360,1361],"blockquote",{},[12,1362,1363,1364,1367,1368,1371,1372,1374,1375,1378],{},"不用",[21,1365,1366],{},"Arm Compiler for Embedded","的原因是",[21,1369,1370],{},"Arm Clang(AC6)","目前只支持C++17标准,而有很多C++20很爱好用的特性无法用,即便",[21,1373,1370],{},"很强,咱们还是放弃使用了,咱们用",[21,1376,1377],{},"Arm GCC","编译器.",[12,1380,1381],{},"选择最新版本即可，越高的版本，支持的C\u002FC++标准越高.",[12,1383,1384],{},[81,1385],{"alt":83,"src":1386},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790747820196-e42e9c22.webp",[12,1388,1389,1390,1392,1393],{},"然后同时可以关闭",[21,1391,1366],{},",咱们并不用",[21,1394,1370],{},[12,1396,1397],{},[81,1398],{"alt":83,"src":1399},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790764675735-c30d1456.webp",[32,1401,1402],{"start":306},[35,1403,1404],{},"Kitware's CMake tool",[12,1406,1347],{},[12,1408,1409],{},[81,1410],{"alt":83,"src":1411},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790748384839-bb57b37d.webp",[32,1413,1414],{"start":317},[35,1415,1416],{},"Ninja Build",[12,1418,1347],{},[12,1420,1421],{},[81,1422],{"alt":83,"src":1423},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790748393076-952822d7.webp",[12,1425,1314,1426,1318,1428,1322],{},[21,1427,1317],{},[21,1429,1321],{},[12,1431,1432],{},[81,1433],{"alt":83,"src":1434},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790764712706-80cef55a.webp",[760,1436,1437],{"id":1437},"solution的编译器选择",[12,1439,1440,1441],{},"打开",[21,1442,1443],{},"CubeMX.csolution.yml",[12,1445,1446,1447,1449,1450],{},"把下面这个从",[21,1448,1103],{},"改成",[21,1451,1127],{},[12,1453,1454],{},[81,1455],{"alt":83,"src":1456},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790765339737-8bab6e47.webp",[760,1458],{"id":83},[12,1460,1461,1462,1465,1466,1271],{},"CubeMX 生成的 ",[21,1463,1464],{},"startup_stm32f407ighx.s"," 需要 CubeMX 自己那套 GCC linker script 里的这些符号，但 CMSIS-Toolbox 现在却用了它自动生成的默认 ",[21,1467,1468],{},"gcc_linker_script.ld",[12,1470,1471],{},"官方 CMSIS-Toolbox 的 CubeMX 文档其实专门强调了这一点：",[12,1473,1474],{},"CubeMX 生成的 linker script 和 startup\u002Fsystem 初始化代码是强绑定的，应该使用 CubeMX 生成的 linker script。",[12,1476,1477,1478],{},"而且官方对 GCC 的路径就是,",[21,1479,1480],{},".\u002FSTM32CubeMX\u002F\u003Ctarget_name>\u002FSTM32CubeMX\u002F\u003Cdevice_name>.ld",[12,1482,1440,1483,1486],{},[21,1484,1485],{},"CubeMX.cproject.yml",",在最底下加上:",[127,1488,1492],{"className":1489,"code":1490,"language":1491,"meta":83,"style":83},"language-yml shiki shiki-themes github-light github-dark","  linker:\n    - script: .\u002FSTM32CubeMX\u002FSTM32F407IGHx\u002FSTM32CubeMX\u002FSTM32F407xx_FLASH.ld\n      for-compiler: GCC\n","yml",[21,1493,1494,1503,1517],{"__ignoreMap":83},[135,1495,1496,1500],{"class":137,"line":138},[135,1497,1499],{"class":1498},"s9eBZ","  linker",[135,1501,1502],{"class":193},":\n",[135,1504,1505,1508,1511,1514],{"class":137,"line":284},[135,1506,1507],{"class":193},"    - ",[135,1509,1510],{"class":1498},"script",[135,1512,1513],{"class":193},": ",[135,1515,1516],{"class":145},".\u002FSTM32CubeMX\u002FSTM32F407IGHx\u002FSTM32CubeMX\u002FSTM32F407xx_FLASH.ld\n",[135,1518,1519,1522,1524],{"class":137,"line":295},[135,1520,1521],{"class":1498},"      for-compiler",[135,1523,1513],{"class":193},[135,1525,1526],{"class":145},"GCC\n",[641,1528,1529,1548],{},[35,1530,1531,1532,1535,1536,1539,1540,1543,1544,1547],{},"这个",[21,1533,1534],{},"linker","是和",[21,1537,1538],{},"components","以及",[21,1541,1542],{},"output","属于同一级别，也就是属于",[21,1545,1546],{},"project","的下一级。",[35,1549,1550,1551,1554,1555,1558],{},"这里的",[21,1552,1553],{},".\u002FSTM32CubeMX\u002FSTM32F407IGHx\u002FSTM32CubeMX\u002FSTM32F407xx_FLASH.ld","是CubeMX生成的",[21,1556,1557],{},".ld",",你去看看具体是不是这个路径,文件名是不是这个,可能需要修改下,不能直接复制。",[25,1560,1561],{"id":1561},"初次编译",[12,1563,1564],{},"接下来编译",[12,1566,1567],{},[81,1568],{"alt":83,"src":1569},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790766094330-692df709.webp",[12,1571,1572],{},"成功编译",[12,1574,1575],{},[81,1576],{"alt":83,"src":1577},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790766720803-70bd76a3.webp",[25,1579,1580],{"id":1580},"配置成标准工程",[74,1582,1584],{"id":1583},"配置cc标准","配置C\u002FC++标准",[12,1586,1440,1587,1486],{},[21,1588,1485],{},[12,1590,1591,1592,1594],{},"这俩是属于",[21,1593,1546],{},"的下一级：",[12,1596,1597,1598,1601,1602,1605,1606,1271],{},"我这里拿",[21,1599,1600],{},"C23","和",[21,1603,1604],{},"C++23","举例子，实际上你可能用不到那么高的标准，自行决定标准，我们也只用到",[21,1607,1608],{},"C++20",[127,1610,1612],{"className":1489,"code":1611,"language":1491,"meta":83,"style":83},"  # List the programming languages used in the project.\n  language-C: c23\n  language-CPP: c++23\n",[21,1613,1614,1620,1630],{"__ignoreMap":83},[135,1615,1616],{"class":137,"line":138},[135,1617,1619],{"class":1618},"sJ8bj","  # List the programming languages used in the project.\n",[135,1621,1622,1625,1627],{"class":137,"line":284},[135,1623,1624],{"class":1498},"  language-C",[135,1626,1513],{"class":193},[135,1628,1629],{"class":145},"c23\n",[135,1631,1632,1635,1637],{"class":137,"line":295},[135,1633,1634],{"class":1498},"  language-CPP",[135,1636,1513],{"class":193},[135,1638,1639],{"class":145},"c++23\n",[12,1641,1642],{},"以下是这俩选项具体可以填什么：",[127,1644,1647],{"className":1645,"code":1646,"language":599,"meta":83},[598],"language-C:\nDocumentation: https:\u002F\u002Fopen-cmsis-pack.github.io\u002Fcmsis-toolbox\u002FYML-Input-Format\u002F#language-c\n\nLanguage standard to apply for compiling C source files.\n\nFor example c17, or gnu11.\n\nAllowed Values:\n\nc90\ngnu90\nc99\ngnu99\nc11\ngnu11\nc17\ngnu17\nc23\ngnu23\n\nSource: cproject.schema.json\n",[21,1648,1646],{"__ignoreMap":83},[127,1650,1653],{"className":1651,"code":1652,"language":599,"meta":83},[598],"language-CPP:\nDocumentation: https:\u002F\u002Fopen-cmsis-pack.github.io\u002Fcmsis-toolbox\u002FYML-Input-Format\u002F#language-cpp\n\nLanguage standard to apply for compiling C++ source files.\n\nFor example c++17 or gnu++17.\n\nAllowed Values:\n\nc++98\ngnu++98\nc++03\ngnu++03\nc++11\ngnu++11\nc++14\ngnu++14\nc++17\ngnu++17\nc++20\ngnu++20\nc++23\ngnu++23\n\nSource: cproject.schema.json\n",[21,1654,1652],{"__ignoreMap":83},[74,1656,1658],{"id":1657},"配置stm32-c标准工程","配置STM32 C++标准工程",[127,1660,1662],{"className":129,"code":1661,"language":131,"meta":83,"style":83},"git clone \n",[21,1663,1664],{"__ignoreMap":83},[135,1665,1666,1669],{"class":137,"line":138},[135,1667,1668],{"class":141},"git",[135,1670,1671],{"class":145}," clone\n",[12,1673,1674,1675,1677],{},"把文件夹里的东西全部复制到工程目录",[21,1676,718],{},"：",[12,1679,1680],{},[81,1681],{"alt":83,"src":1682},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790767627803-4feba6bf.webp",[12,1684,1685],{},[81,1686],{"alt":83,"src":1687},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790767652163-13fd9ac9.webp",[12,1689,1440,1690,618],{},[21,1691,1485],{},[12,1693,1694],{},"我们要添加：",[127,1696,1699],{"className":1697,"code":1698,"language":599,"meta":83},[598],"add-path:\ngroups:\nfiles:\n",[21,1700,1698],{"__ignoreMap":83},[12,1702,1703,1601,1706,1709,1710,1712],{},[21,1704,1705],{},"add-path",[21,1707,1708],{},"groups","是属于",[21,1711,1546],{},"的下一级",[12,1714,1715],{},"官方定义就是：",[641,1717,1718,1721,1724],{},[35,1719,1720],{},"add-path：添加 C\u002FC++ include path",[35,1722,1723],{},"groups：添加源码分组",[35,1725,1726],{},"files：添加具体源码文件",[12,1728,1729],{},"比如咱们这里的工程：",[127,1731,1733],{"className":1489,"code":1732,"language":1491,"meta":83,"style":83}," # List the include paths to be used by the compiler.\n  add-path:\n    - .\u002Fapplications\u002FInc\n    - .\u002Fbsp\u002Fboards\u002FInc\n\n  # List the groups of source files to be compiled.\n  groups:\n    - group: applications\n      files:\n        - file: .\u002Fapplications\u002FSrc\u002Fcpp_interface.cpp\n    - group: bsp\u002Fboards\n      files:\n        - file: .\u002Fbsp\u002Fboards\u002FSrc\u002Fbsp_delay.cpp\n",[21,1734,1735,1740,1747,1754,1761,1767,1772,1779,1791,1799,1813,1825,1832],{"__ignoreMap":83},[135,1736,1737],{"class":137,"line":138},[135,1738,1739],{"class":1618}," # List the include paths to be used by the compiler.\n",[135,1741,1742,1745],{"class":137,"line":284},[135,1743,1744],{"class":1498},"  add-path",[135,1746,1502],{"class":193},[135,1748,1749,1751],{"class":137,"line":295},[135,1750,1507],{"class":193},[135,1752,1753],{"class":145},".\u002Fapplications\u002FInc\n",[135,1755,1756,1758],{"class":137,"line":306},[135,1757,1507],{"class":193},[135,1759,1760],{"class":145},".\u002Fbsp\u002Fboards\u002FInc\n",[135,1762,1763],{"class":137,"line":317},[135,1764,1766],{"emptyLinePlaceholder":1765},true,"\n",[135,1768,1769],{"class":137,"line":328},[135,1770,1771],{"class":1618},"  # List the groups of source files to be compiled.\n",[135,1773,1774,1777],{"class":137,"line":353},[135,1775,1776],{"class":1498},"  groups",[135,1778,1502],{"class":193},[135,1780,1781,1783,1786,1788],{"class":137,"line":379},[135,1782,1507],{"class":193},[135,1784,1785],{"class":1498},"group",[135,1787,1513],{"class":193},[135,1789,1790],{"class":145},"applications\n",[135,1792,1794,1797],{"class":137,"line":1793},9,[135,1795,1796],{"class":1498},"      files",[135,1798,1502],{"class":193},[135,1800,1802,1805,1808,1810],{"class":137,"line":1801},10,[135,1803,1804],{"class":193},"        - ",[135,1806,1807],{"class":1498},"file",[135,1809,1513],{"class":193},[135,1811,1812],{"class":145},".\u002Fapplications\u002FSrc\u002Fcpp_interface.cpp\n",[135,1814,1816,1818,1820,1822],{"class":137,"line":1815},11,[135,1817,1507],{"class":193},[135,1819,1785],{"class":1498},[135,1821,1513],{"class":193},[135,1823,1824],{"class":145},"bsp\u002Fboards\n",[135,1826,1828,1830],{"class":137,"line":1827},12,[135,1829,1796],{"class":1498},[135,1831,1502],{"class":193},[135,1833,1835,1837,1839,1841],{"class":137,"line":1834},13,[135,1836,1804],{"class":193},[135,1838,1807],{"class":1498},[135,1840,1513],{"class":193},[135,1842,1843],{"class":145},".\u002Fbsp\u002Fboards\u002FSrc\u002Fbsp_delay.cpp\n",[12,1845,1846],{},"写完保存下。",[12,1848,1849,1850],{},"然后打开",[21,1851,1852],{},"main.c",[12,1854,1855],{},[81,1856],{"alt":83,"src":1857},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790768648331-6242382c.webp",[12,1859,1860],{},"在这个地方加上：",[127,1862,1864],{"className":184,"code":1863,"language":186,"meta":83,"style":83},"\u002F* USER CODE BEGIN Includes *\u002F\n#include \"cpp_interface.h\"\n\u002F* USER CODE END Includes *\u002F\n",[21,1865,1866,1871,1879],{"__ignoreMap":83},[135,1867,1868],{"class":137,"line":138},[135,1869,1870],{"class":1618},"\u002F* USER CODE BEGIN Includes *\u002F\n",[135,1872,1873,1876],{"class":137,"line":284},[135,1874,1875],{"class":197},"#include",[135,1877,1878],{"class":145}," \"cpp_interface.h\"\n",[135,1880,1881],{"class":137,"line":295},[135,1882,1883],{"class":1618},"\u002F* USER CODE END Includes *\u002F\n",[12,1885,1886],{},[81,1887],{"alt":83,"src":1888},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790768891625-5ff9be11.webp",[127,1890,1892],{"className":184,"code":1891,"language":186,"meta":83,"style":83},"  \u002F* USER CODE BEGIN 2 *\u002F\n  cpp_main();\n  \u002F* USER CODE END 2 *\u002F\n",[21,1893,1894,1899,1907],{"__ignoreMap":83},[135,1895,1896],{"class":137,"line":138},[135,1897,1898],{"class":1618},"  \u002F* USER CODE BEGIN 2 *\u002F\n",[135,1900,1901,1904],{"class":137,"line":284},[135,1902,1903],{"class":141},"  cpp_main",[135,1905,1906],{"class":193},"();\n",[135,1908,1909],{"class":137,"line":295},[135,1910,1911],{"class":1618},"  \u002F* USER CODE END 2 *\u002F\n",[12,1913,1914],{},[81,1915],{"alt":83,"src":1916},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790768880281-0dc5e79d.webp",[12,1918,1849,1919,1922,1923,1677],{},[21,1920,1921],{},"cpp_interface.cpp","，找到",[21,1924,1925],{},"isRTOS",[12,1927,1928],{},[81,1929],{"alt":83,"src":1930},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790769064512-049bf4ca.webp",[12,1932,1933,1934,1936],{},"给",[21,1935,1925],{},"改成1",[12,1938,1939],{},[81,1940],{"alt":83,"src":1941},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790769093513-f95643ca.webp",[12,1943,1944],{},"编译一次试试：",[12,1946,1947],{},[81,1948],{"alt":83,"src":1949},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790768938754-fbabb47e.webp",[74,1951,1952],{"id":1952},"点亮一个灯",[12,1954,1955],{},[81,1956],{"alt":83,"src":1957},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790768963018-23e91802.webp",[12,1959,1960,1961,1271],{},"复制这个",[21,1962,1963],{},"void StartDefaultTask(void *argument)",[12,1965,1966,1967,1969],{},"去",[21,1968,1921],{},"做一个简单测试：",[127,1971,1973],{"className":184,"code":1972,"language":186,"meta":83,"style":83},"#include \"cpp_interface.h\"\n#include \"cmsis_os.h\"\n#include \"main.h\"\n\nvoid cpp_main(void)\n{\n#if isRTOS == 0  \u002F\u002F 裸机开发\n    for (;;)\n    {\n    }\n#endif\n}\n\nextern \"C\"\nvoid StartDefaultTask(void *argument)\n{\n    for (;;)\n    {\n        HAL_GPIO_TogglePin(LED_B_GPIO_Port , LED_B_Pin);\n        osDelay(500);\n    }\n}\n",[21,1974,1975,1981,1988,1995,1999,2015,2020,2037,2045,2050,2055,2060,2065,2069,2078,2099,2104,2111,2116,2125,2139,2144],{"__ignoreMap":83},[135,1976,1977,1979],{"class":137,"line":138},[135,1978,1875],{"class":197},[135,1980,1878],{"class":145},[135,1982,1983,1985],{"class":137,"line":284},[135,1984,1875],{"class":197},[135,1986,1987],{"class":145}," \"cmsis_os.h\"\n",[135,1989,1990,1992],{"class":137,"line":295},[135,1991,1875],{"class":197},[135,1993,1994],{"class":145}," \"main.h\"\n",[135,1996,1997],{"class":137,"line":306},[135,1998,1766],{"emptyLinePlaceholder":1765},[135,2000,2001,2004,2007,2010,2012],{"class":137,"line":317},[135,2002,2003],{"class":197},"void",[135,2005,2006],{"class":141}," cpp_main",[135,2008,2009],{"class":193},"(",[135,2011,2003],{"class":197},[135,2013,2014],{"class":193},")\n",[135,2016,2017],{"class":137,"line":328},[135,2018,2019],{"class":193},"{\n",[135,2021,2022,2025,2028,2031,2034],{"class":137,"line":353},[135,2023,2024],{"class":197},"#if",[135,2026,2027],{"class":141}," isRTOS",[135,2029,2030],{"class":197}," ==",[135,2032,2033],{"class":575}," 0",[135,2035,2036],{"class":1618},"  \u002F\u002F 裸机开发\n",[135,2038,2039,2042],{"class":137,"line":379},[135,2040,2041],{"class":197},"    for",[135,2043,2044],{"class":193}," (;;)\n",[135,2046,2047],{"class":137,"line":1793},[135,2048,2049],{"class":193},"    {\n",[135,2051,2052],{"class":137,"line":1801},[135,2053,2054],{"class":193},"    }\n",[135,2056,2057],{"class":137,"line":1815},[135,2058,2059],{"class":197},"#endif\n",[135,2061,2062],{"class":137,"line":1827},[135,2063,2064],{"class":193},"}\n",[135,2066,2067],{"class":137,"line":1834},[135,2068,1766],{"emptyLinePlaceholder":1765},[135,2070,2072,2075],{"class":137,"line":2071},14,[135,2073,2074],{"class":197},"extern",[135,2076,2077],{"class":145}," \"C\"\n",[135,2079,2081,2083,2086,2088,2090,2093,2097],{"class":137,"line":2080},15,[135,2082,2003],{"class":197},[135,2084,2085],{"class":141}," StartDefaultTask",[135,2087,2009],{"class":193},[135,2089,2003],{"class":197},[135,2091,2092],{"class":197}," *",[135,2094,2096],{"class":2095},"s4XuR","argument",[135,2098,2014],{"class":193},[135,2100,2102],{"class":137,"line":2101},16,[135,2103,2019],{"class":193},[135,2105,2107,2109],{"class":137,"line":2106},17,[135,2108,2041],{"class":197},[135,2110,2044],{"class":193},[135,2112,2114],{"class":137,"line":2113},18,[135,2115,2049],{"class":193},[135,2117,2119,2122],{"class":137,"line":2118},19,[135,2120,2121],{"class":141},"        HAL_GPIO_TogglePin",[135,2123,2124],{"class":193},"(LED_B_GPIO_Port , LED_B_Pin);\n",[135,2126,2128,2131,2133,2136],{"class":137,"line":2127},20,[135,2129,2130],{"class":141},"        osDelay",[135,2132,2009],{"class":193},[135,2134,2135],{"class":575},"500",[135,2137,2138],{"class":193},");\n",[135,2140,2142],{"class":137,"line":2141},21,[135,2143,2054],{"class":193},[135,2145,2147],{"class":137,"line":2146},22,[135,2148,2064],{"class":193},[12,2150,1944],{},[12,2152,2153],{},[81,2154],{"alt":83,"src":2155},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790769254166-1b85e963.webp",[25,2157,2159],{"id":2158},"配置debugger","配置Debugger",[12,2161,2162,2163,1677],{},"点击设置，找到",[21,2164,2165],{},"Debug Adapter for Target STM32F407IGHx",[12,2167,2168,2169,2172,2173,2172,2176,2179],{},"可以选择特别多的Debugger,比如",[21,2170,2171],{},"ST-Link","，",[21,2174,2175],{},"J-Link",[21,2177,2178],{},"CMSIS-DAP","等等。",[12,2181,2182],{},[81,2183],{"alt":83,"src":2184},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F01\u002F21\u002F1790769581682-66b5e2d2.webp",[2186,2187,2188],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":83,"searchDepth":284,"depth":284,"links":2190},[2191,2192,2193,2194,2195,2196,2197,2198],{"id":27,"depth":295,"text":27},{"id":49,"depth":295,"text":49},{"id":72,"depth":295,"text":72},{"id":539,"depth":295,"text":539},{"id":629,"depth":295,"text":629},{"id":1561,"depth":295,"text":1561},{"id":1580,"depth":295,"text":1580},{"id":2158,"depth":295,"text":2159},0,"0325","2024-01-21","2024-01-21-arm-keil-mdk6-jiao-cheng","\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng","Arm Keil MDK6教程","md",false,{},"\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng\u002F0325-linux-huan-jing-da-jian-xin",{"title":5,"description":23},"wiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002F0325-Linux环境搭建（新）","-jJUfTPDpikNk6dnJVTmDF409iD4T0YuxUgc48KLxW0",[2213,2219,2225,2231,2233,2239,2245,2251],{"path":2214,"stem":2215,"title":2216,"authors":2217,"date":2201,"chapterOrder":2218,"chapterDepth":2199,"docKey":2202,"docRoot":2203,"docTitle":2204,"isWikiDoc":1765,"isWikiIndex":2206},"\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng\u002F0100-jian-jie","wiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002F0100-简介","简介",[7],"0100",{"path":2220,"stem":2221,"title":2222,"authors":2223,"date":2201,"chapterOrder":2224,"chapterDepth":2199,"docKey":2202,"docRoot":2203,"docTitle":2204,"isWikiDoc":1765,"isWikiIndex":2206},"\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng\u002F0200-guan-fang-jiao-cheng","wiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002F0200-官方教程","官方教程",[7],"0200",{"path":2226,"stem":2227,"title":2228,"authors":2229,"date":2201,"chapterOrder":2230,"chapterDepth":2199,"docKey":2202,"docRoot":2203,"docTitle":2204,"isWikiDoc":1765,"isWikiIndex":2206},"\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng\u002F0300-linux-huan-jing-da-jian-jiu","wiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002F0300-Linux环境搭建（旧）","Linux环境搭建（旧）",[7],"0300",{"path":2208,"stem":2210,"title":5,"authors":2232,"date":2201,"chapterOrder":2200,"chapterDepth":2199,"docKey":2202,"docRoot":2203,"docTitle":2204,"isWikiDoc":1765,"isWikiIndex":2206},[7],{"path":2234,"stem":2235,"title":2236,"authors":2237,"date":2201,"chapterOrder":2238,"chapterDepth":2199,"docKey":2202,"docRoot":2203,"docTitle":2204,"isWikiDoc":1765,"isWikiIndex":2206},"\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng\u002F0400-windows-huan-jing-da-jian-jiu","wiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002F0400-Windows环境搭建（旧）","Windows环境搭建（旧）",[7],"0400",{"path":2240,"stem":2241,"title":2242,"authors":2243,"date":2201,"chapterOrder":2244,"chapterDepth":2199,"docKey":2202,"docRoot":2203,"docTitle":2204,"isWikiDoc":1765,"isWikiIndex":2206},"\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng\u002F0500-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong","wiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002F0500-进阶使用教程(全平台通用)","进阶使用教程(全平台通用)",[7],"0500",{"path":2246,"stem":2247,"title":2248,"authors":2249,"date":2201,"chapterOrder":2250,"chapterDepth":2199,"docKey":2202,"docRoot":2203,"docTitle":2204,"isWikiDoc":1765,"isWikiIndex":2206},"\u002Fwiki\u002F2024-01-21-arm-keil-mdk6-jiao-cheng\u002F0600-chang-jian-wen-ti","wiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002F0600-常见问题","常见问题",[7],"0600",{"path":2203,"stem":2252,"title":2253,"authors":2254,"date":2201,"chapterOrder":2255,"chapterDepth":2199,"docKey":2202,"docRoot":2203,"docTitle":2204,"isWikiDoc":1765,"isWikiIndex":1765},"wiki\u002F2024-01-21-Arm-Keil-MDK6教程\u002Findex","Arm-Keil-MDK6教程",[7],null,[2257,2259,2262,2265],{"name":7,"image":2258},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":2260,"image":2261},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":2263,"image":2264},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":2266,"image":2267},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431904767]