[{"data":1,"prerenderedAt":961},["ShallowReactive",2],{"wiki-page-/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong":3,"wiki-doc-items-/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong":910,"language-switcher-data-/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong":945,"wiki-i18n-paths-/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong":960},{"id":4,"title":5,"body":6,"canonicalPath":891,"chapter":892,"chapterSort":893,"date":894,"description":25,"docI18nKey":895,"docKey":896,"docRoot":897,"docTitle":898,"extension":899,"i18nKey":900,"isBlogPost":901,"isWikiDoc":145,"isWikiIndex":901,"layout":902,"legacyPath":902,"locale":903,"localeSlug":904,"meta":905,"navigation":145,"path":891,"seo":906,"sourcePath":907,"sourceStem":900,"stem":908,"wikiDepth":96,"__hash__":909},"content/_i18n/en-us/wiki/2024-01-21-Arm-Keil-MDK6教程/ch5-进阶使用教程(全平台通用).md","Advanced Usage Tutorial (Universal for All Platforms)",{"type":7,"value":8,"toc":886},"minimark",[9,14,19,27,30,35,38,43,48,52,55,60,63,71,75,78,83,237,240,245,248,253,256,261,268,273,276,281,284,289,295,300,303,307,313,317,320,323,326,331,336,341,344,351,357,364,371,376,379,384,389,394,398,405,410,413,422,429,440,445,452,457,460,471,476,481,484,494,499,504,507,512,515,520,523,528,533,536,541,548,553,558,561,564,569,576,584,590,607,639,642,647,650,655,661,665,669,676,683,688,693,697,700,708,712,717,720,725,731,735,740,743,748,793,796,800,805,810,818,823,834,856,860,864,867,870,874,879,882],[10,11,13],"h3",{"id":12},"run-running-a-program-and-debug-debugging-a-program","Run (running a program) and Debug (debugging a program)?",[15,16,18],"h4",{"id":17},"select-packs","Select packs",[20,21,22],"p",{},[23,24],"img",{"alt":25,"src":26},"","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image65.webp",[20,28,29],{},"After \"STM32 STLink\" appears, then press Enter.",[20,31,32],{},[23,33],{"alt":25,"src":34},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image66.webp",[20,36,37],{},"Search for the corresponding chip's Packs and select it.",[20,39,40],{},[23,41],{"alt":25,"src":42},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image67.webp",[20,44,45],{},[23,46],{"alt":25,"src":47},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image68.webp",[15,49,51],{"id":50},"download-the-program-to-the-st-link","Download the program to the ST-Link.",[20,53,54],{},"Click RUN, then in the newly opened window select the corresponding model, for example I choose STM32F103C8.",[20,56,57],{},[23,58],{"alt":25,"src":59},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image69.webp",[20,61,62],{},"You can see that the command below has successfully flashed the program into the STM32, and the STM32 is now working properly.",[20,64,65,68],{},[23,66],{"alt":25,"src":67},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image70.webp",[23,69],{"alt":25,"src":70},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image71.webp",[15,72,74],{"id":73},"debug-debugging-the-program","(DEBUG) Debugging the program",[20,76,77],{},"Set three breakpoints.",[20,79,80],{},[23,81],{"alt":25,"src":82},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image72.webp",[84,85,89],"pre",{"className":86,"code":87,"language":88,"meta":25,"style":25},"language-cpp shiki shiki-themes github-light github-dark","extern \"C\"\nvoid led_task(void const * argument)\n{\n\n    for(;;)\n    {\n        static int a = 5;\n        bsp_led.LED_Toggle();  //实例化后调用对象翻转电平函数\n        osDelay(500);\n        a++;\n    }\n}\n\n","cpp",[90,91,92,105,134,140,147,156,162,184,200,214,225,231],"code",{"__ignoreMap":25},[93,94,97,101],"span",{"class":95,"line":96},"line",1,[93,98,100],{"class":99},"szBVR","extern",[93,102,104],{"class":103},"sZZnC"," \"C\"\n",[93,106,108,111,115,119,121,124,127,131],{"class":95,"line":107},2,[93,109,110],{"class":99},"void",[93,112,114],{"class":113},"sScJk"," led_task",[93,116,118],{"class":117},"sVt8B","(",[93,120,110],{"class":99},[93,122,123],{"class":99}," const",[93,125,126],{"class":99}," *",[93,128,130],{"class":129},"s4XuR"," argument",[93,132,133],{"class":117},")\n",[93,135,137],{"class":95,"line":136},3,[93,138,139],{"class":117},"{\n",[93,141,143],{"class":95,"line":142},4,[93,144,146],{"emptyLinePlaceholder":145},true,"\n",[93,148,150,153],{"class":95,"line":149},5,[93,151,152],{"class":99},"    for",[93,154,155],{"class":117},"(;;)\n",[93,157,159],{"class":95,"line":158},6,[93,160,161],{"class":117},"    {\n",[93,163,165,168,171,174,177,181],{"class":95,"line":164},7,[93,166,167],{"class":99},"        static",[93,169,170],{"class":99}," int",[93,172,173],{"class":117}," a ",[93,175,176],{"class":99},"=",[93,178,180],{"class":179},"sj4cs"," 5",[93,182,183],{"class":117},";\n",[93,185,187,190,193,196],{"class":95,"line":186},8,[93,188,189],{"class":117},"        bsp_led.",[93,191,192],{"class":113},"LED_Toggle",[93,194,195],{"class":117},"();",[93,197,199],{"class":198},"sJ8bj","  //实例化后调用对象翻转电平函数\n",[93,201,203,206,208,211],{"class":95,"line":202},9,[93,204,205],{"class":113},"        osDelay",[93,207,118],{"class":117},[93,209,210],{"class":179},"500",[93,212,213],{"class":117},");\n",[93,215,217,220,223],{"class":95,"line":216},10,[93,218,219],{"class":117},"        a",[93,221,222],{"class":99},"++",[93,224,183],{"class":117},[93,226,228],{"class":95,"line":227},11,[93,229,230],{"class":117},"    }\n",[93,232,234],{"class":95,"line":233},12,[93,235,236],{"class":117},"}\n",[20,238,239],{},"Click Debug and select the model.",[20,241,242],{},[23,243],{"alt":25,"src":244},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image73.webp",[20,246,247],{},"Then you can enter the Debug interface.",[20,249,250],{},[23,251],{"alt":25,"src":252},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image74.webp",[20,254,255],{},"Click the start button.",[20,257,258],{},[23,259],{"alt":25,"src":260},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image75.webp",[20,262,263,264,267],{},"You can see that the breakpoint was successfully hit, and the value of ",[90,265,266],{},"a"," can be viewed in the left panel.",[20,269,270],{},[23,271],{"alt":25,"src":272},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image76.webp",[20,274,275],{},"Then click Continue.",[20,277,278],{},[23,279],{"alt":25,"src":280},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image77.webp",[20,282,283],{},"The next breakpoint was also hit.",[20,285,286],{},[23,287],{"alt":25,"src":288},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image78.webp",[20,290,291,292,294],{},"Then click Continue, and you'll see that the value of ",[90,293,266],{}," has changed to 6, which matches the execution of our program.",[20,296,297],{},[23,298],{"alt":25,"src":299},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image79.webp",[20,301,302],{},"That's it, you can debug normally now.",[10,304,306],{"id":305},"vscode-header-file-configuration","VScode header file configuration",[20,308,309],{},[310,311,312],"strong",{},"(This only allows for better code editing; these header files have not been added to the compilation environment)",[15,314,316],{"id":315},"cc-plugin-not-recommended","C/C++ plugin (not recommended)",[20,318,319],{},"If you encounter a situation where header files cannot be found, simply configure the Include Path of the VSCode C/C++ extension.",[20,321,322],{},"However, since this plugin requires configuring the compiler at the same time, it may encounter various minor issues.",[20,324,325],{},"Moreover, this plugin can be very laggy for large projects. You can choose to directly read the clangd plugin tutorial below.",[20,327,328],{},[23,329],{"alt":25,"src":330},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image80.webp",[20,332,333],{},[23,334],{"alt":25,"src":335},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image81.webp",[20,337,338],{},[23,339],{"alt":25,"src":340},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image82.webp",[20,342,343],{},"Add one more line here../**",[20,345,346,347,350],{},"In addition to the method above, this can also be done by modifying the ",[90,348,349],{},"c_cpp_properties.json"," file.",[20,352,353,356],{},[90,354,355],{},"\"../**\""," (meaning to load all files from the previous directory (project root) into the Include Path)",[20,358,359,360,363],{},"It is also recommended to add the ARMCLANG include files here: \"",[90,361,362],{},"/home/tungchiahui/.vcpkg/artifacts/2139c4c6/compilers.arm.armclang/6.21.0/include/","\"",[20,365,366,367,370],{},"Everyone's directory is different, but they are all located in the hidden ",[90,368,369],{},".vcpkg"," folder under the user folder. You can find it yourself. (The image below is incomplete; please add content based on the information above.)",[20,372,373],{},[23,374],{"alt":25,"src":375},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image83.webp",[20,377,378],{},"After configuration, we found that code suggestions are working properly. Although the header files might still be incorrectly flagged by VSCode as missing, they can actually be compiled normally, and the suggestions for these header files are also working correctly.",[20,380,381],{},[23,382],{"alt":25,"src":383},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image84.webp",[20,385,386],{},[23,387],{"alt":25,"src":388},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image85.webp",[20,390,391],{},[23,392],{"alt":25,"src":393},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image86.webp",[15,395,397],{"id":396},"clangd-plugin-highly-recommended","Clangd plugin (highly recommended)",[399,400,401],"ol",{},[402,403,404],"li",{},"Advantage: Since clangd is well-suited for large CMake projects and performs far better than the C/C++ extension in such projects, both the author and MDK6 recommend using the clangd language server.",[20,406,407],{},[23,408],{"alt":25,"src":409},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image87.webp",[20,411,412],{},"The latest version of MDK6 comes with a built-in clangd plugin.",[399,414,415],{"start":107},[402,416,417,418,421],{},"On Windows, you need to download and install LLVM (on Linux you usually don't need to worry about it, or ",[90,419,420],{},"sudo apt install llvm",").",[20,423,424],{},[266,425,426],{"href":426,"rel":427},"https://github.com/llvm/llvm-project/releases",[428],"nofollow",[20,430,431,432,435,436,439],{},"I downloaded LLVM 18.1.8, selecting ",[90,433,434],{},"Assets"," and selecting ",[90,437,438],{},"LLVM-18.1.8-win64.exe",".",[20,441,442],{},[23,443],{"alt":25,"src":444},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image88.webp",[20,446,447,448,451],{},"Select this option ",[90,449,450],{},"Add LLVM to the system PATH for all users"," here, then just click Next without changing anything else.",[20,453,454],{},[23,455],{"alt":25,"src":456},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image89.webp",[20,458,459],{},"You can open a terminal to test whether the installation was successful and the environment is properly configured.",[84,461,465],{"className":462,"code":463,"language":464,"meta":25,"style":25},"language-powershell shiki shiki-themes github-light github-dark","clang -v\n","powershell",[90,466,467],{"__ignoreMap":25},[93,468,469],{"class":95,"line":96},[93,470,463],{},[20,472,473],{},[23,474],{"alt":25,"src":475},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image90.webp",[399,477,478],{"start":136},[402,479,480],{},"Now let's install clangd:",[20,482,483],{},"Hold down Ctrl+Shift+P to open the search box.",[20,485,486,487,490,491,493],{},"Enter ",[90,488,489],{},"clangd",", find the \"Download Language Server\" option, and click to install ",[90,492,489],{}," (please ensure a stable internet connection).",[20,495,496],{},[23,497],{"alt":25,"src":498},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image91.webp",[399,500,501],{"start":142},[402,502,503],{},"Next, configure clangd:",[20,505,506],{},"Disable C/C++ code suggestion features.",[20,508,509],{},[23,510],{"alt":25,"src":511},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image92.webp",[20,513,514],{},"If the pop-up shown above does not appear, you can manually close it. Again, press Ctrl+Shift+P, type \"settings\", and then find the option shown in the image below.",[20,516,517],{},[23,518],{"alt":25,"src":519},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image93.webp",[20,521,522],{},"Find the option shown in the image below and change it to disabled.",[20,524,525],{},[90,526,527],{},"\"C_Cpp.intelliSenseEngine\": \"disabled\"",[20,529,530],{},[23,531],{"alt":25,"src":532},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image94.webp",[20,534,535],{},"Create a new settings.json file.",[20,537,538],{},[23,539],{"alt":25,"src":540},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image95.webp",[20,542,543,544,547],{},"Modify the content inside. This content is the path to the ",[90,545,546],{},"compile_commands.json"," file generated by CMake (the path may change with MDK6 version updates, so please locate the file path yourself).",[20,549,550],{},[23,551],{"alt":25,"src":552},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image96.webp",[20,554,555],{},[23,556],{"alt":25,"src":557},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image97.webp",[20,559,560],{},"Next, locate the include directory of the armclang compiler and add it as well. It is typically found in the .vcpkg hidden folder under the user directory.",[20,562,563],{},"(No need to look for it anymore)",[20,565,566],{},[23,567],{"alt":25,"src":568},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image98.webp",[20,570,571,572,575],{},"Here is an example of ",[90,573,574],{},"settings.json"," for the Linux version.",[84,577,582],{"className":578,"code":580,"language":581},[579],"language-text","{\n    \"clangd.arguments\": [\n        \"--compile-commands-dir=${workspaceFolder}/tmp/Template_Linux/TemplateLinux\"\n    ]\n}\n","text",[90,583,580],{"__ignoreMap":25},[20,585,586,587,589],{},"Here is an example of the ",[90,588,574],{}," file for the Windows version.",[20,591,592,593,596,597,600,601,596,604,439],{},"Note that on Windows, drive letters need to be changed to lowercase, for example ",[90,594,595],{},"C:/"," should be changed to ",[90,598,599],{},"c:/",", and ",[90,602,603],{},"反斜杠\\",[90,605,606],{},"斜杠/",[84,608,611],{"className":609,"code":580,"language":610,"meta":25,"style":25},"language-json shiki shiki-themes github-light github-dark","json",[90,612,613,617,625,630,635],{"__ignoreMap":25},[93,614,615],{"class":95,"line":96},[93,616,139],{"class":117},[93,618,619,622],{"class":95,"line":107},[93,620,621],{"class":179},"    \"clangd.arguments\"",[93,623,624],{"class":117},": [\n",[93,626,627],{"class":95,"line":136},[93,628,629],{"class":103},"        \"--compile-commands-dir=${workspaceFolder}/tmp/Template_Linux/TemplateLinux\"\n",[93,631,632],{"class":95,"line":142},[93,633,634],{"class":117},"    ]\n",[93,636,637],{"class":95,"line":149},[93,638,236],{"class":117},[20,640,641],{},"Then press Ctrl+Shift+P, search for \"clangd\", and find the option shown in the image below.",[20,643,644],{},[23,645],{"alt":25,"src":646},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image99.webp",[20,648,649],{},"The code hints are working normally now.",[20,651,652],{},[23,653],{"alt":25,"src":654},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image100.webp",[10,656,658],{"id":657},"add-source-files-corresponding-to-project-items-and-header-files-corresponding-to-include-path-to-the-build-environment",[310,659,660],{},"Add source files (corresponding to Project Items) and header files (corresponding to Include Path) to the build environment",[15,662,664],{"id":663},"common-method-modifying-the-yaml-file","Common method (modifying the yaml file)",[666,667,668],"h5",{"id":668},"references",[20,670,671,672,675],{},"To add source files, you need to modify the ",[90,673,674],{},"cproject.yml"," file using YAML markup language.",[20,677,678,679],{},"The official documentation provides more detailed information on this: ",[266,680,681],{"href":681,"rel":682},"https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/YML-Input-Format.md#source-file-management",[428],[20,684,685],{},[23,686],{"alt":25,"src":687},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image101.webp",[20,689,690],{},[23,691],{"alt":25,"src":692},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image102.webp",[666,694,696],{"id":695},"create-files-c-and-h","Create files (.c and .h)",[20,698,699],{},"We'll first create 4 files in the BSP and place them into the Src and Inc directories respectively.",[20,701,702,705],{},[23,703],{"alt":25,"src":704},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image103.webp",[23,706],{"alt":25,"src":707},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image104.webp",[666,709,711],{"id":710},"add-the-header-file-path","Add the header file path.",[20,713,714],{},[23,715],{"alt":25,"src":716},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image105.webp",[20,718,719],{},"Write the directory where the header file is located.",[20,721,722],{},[23,723],{"alt":25,"src":724},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image106.webp",[84,726,729],{"className":727,"code":728,"language":581},[579],"      add-path:\n        - ../Core/Inc\n        - ../Drivers/STM32F1xx_HAL_Driver/Inc\n        - ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy\n        - ../Drivers/CMSIS/Device/ST/STM32F1xx/Include\n        - ../Drivers/CMSIS/Include\n        - ../bsp/boards/Inc\n        - ../applications/Inc\n",[90,730,728],{"__ignoreMap":25},[666,732,734],{"id":733},"add-source-files-and-groups","Add source files and groups",[20,736,737],{},[23,738],{"alt":25,"src":739},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image107.webp",[20,741,742],{},"Enter the group name and the source file path to be added here (since there are no source files in applications, we comment it out).",[20,744,745],{},[23,746],{"alt":25,"src":747},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image108.webp",[84,749,753],{"className":750,"code":751,"language":752,"meta":25,"style":25},"language-ymal shiki shiki-themes github-light github-dark","    - group: bsp/boards\n      files:\n        - file: ../bsp/boards/Src/gpio_demo.cpp\n        - file: ../bsp/boards/Src/gpio_test.c\n\n    # - group: applications\n\n    #   files:\n","ymal",[90,754,755,760,765,770,775,779,784,788],{"__ignoreMap":25},[93,756,757],{"class":95,"line":96},[93,758,759],{},"    - group: bsp/boards\n",[93,761,762],{"class":95,"line":107},[93,763,764],{},"      files:\n",[93,766,767],{"class":95,"line":136},[93,768,769],{},"        - file: ../bsp/boards/Src/gpio_demo.cpp\n",[93,771,772],{"class":95,"line":142},[93,773,774],{},"        - file: ../bsp/boards/Src/gpio_test.c\n",[93,776,777],{"class":95,"line":149},[93,778,146],{"emptyLinePlaceholder":145},[93,780,781],{"class":95,"line":158},[93,782,783],{},"    # - group: applications\n",[93,785,786],{"class":95,"line":164},[93,787,146],{"emptyLinePlaceholder":145},[93,789,790],{"class":95,"line":186},[93,791,792],{},"    #   files:\n",[20,794,795],{},"The source files and header files have been successfully imported. We can now write the file content to see if it compiles successfully.",[666,797,799],{"id":798},"write-the-file-and-compile-it","Write the file and compile it.",[20,801,802],{},[23,803],{"alt":25,"src":804},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image109.webp",[20,806,807],{},[23,808],{"alt":25,"src":809},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image110.webp",[20,811,812,815],{},[23,813],{"alt":25,"src":814},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image111.webp",[23,816],{"alt":25,"src":817},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image112.webp",[20,819,820],{},[23,821],{"alt":25,"src":822},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image113.webp",[20,824,825,826,829,830,833],{},"You can see these lines in the log, showing that both ",[90,827,828],{},"gpio_demo"," and ",[90,831,832],{},"gpio_test"," were successfully compiled.",[84,835,839],{"className":836,"code":837,"language":838,"meta":25,"style":25},"language-bash shiki shiki-themes github-light github-dark","[14/22] Building C object CMakeFiles/Template_Linux.dir/home/tungchiahui/user/Source/STM32_Projects/N1_F407ZGT6_GPIO_Test/bsp/boards/Src/gpio_test.o\n[15/22] Building C object CMakeFiles/Template_Linux.dir/home/tungchiahui/user/Source/STM32_Projects/N1_F407ZGT6_GPIO_Test/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o\n[16/22] Building CXX object CMakeFiles/Template_Linux.dir/home/tungchiahui/user/Source/STM32_Projects/N1_F407ZGT6_GPIO_Test/bsp/boards/Src/gpio_demo.o\n","bash",[90,840,841,846,851],{"__ignoreMap":25},[93,842,843],{"class":95,"line":96},[93,844,845],{"class":117},"[14/22] Building C object CMakeFiles/Template_Linux.dir/home/tungchiahui/user/Source/STM32_Projects/N1_F407ZGT6_GPIO_Test/bsp/boards/Src/gpio_test.o\n",[93,847,848],{"class":95,"line":107},[93,849,850],{"class":117},"[15/22] Building C object CMakeFiles/Template_Linux.dir/home/tungchiahui/user/Source/STM32_Projects/N1_F407ZGT6_GPIO_Test/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.o\n",[93,852,853],{"class":95,"line":136},[93,854,855],{"class":117},"[16/22] Building CXX object CMakeFiles/Template_Linux.dir/home/tungchiahui/user/Source/STM32_Projects/N1_F407ZGT6_GPIO_Test/bsp/boards/Src/gpio_demo.o\n",[15,857,859],{"id":858},"graphical","Graphical",[666,861,863],{"id":862},"introduction","Introduction",[20,865,866],{},"Thanks to the ARM team's impressive efforts, they rolled out a graphical interface in just two months, and it has already been updated as of early March.",[20,868,869],{},"When the ARM team updates a graphical feature, the tutorial below will be delayed by a few days to update the corresponding content.",[666,871,873],{"id":872},"add-the-source-file","Add the source file.",[20,875,876],{},[23,877],{"alt":25,"src":878},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/01/21/image114.webp",[20,880,881],{},"Waiting for ARM to update the feature...",[883,884,885],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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);}",{"title":25,"searchDepth":107,"depth":107,"links":887},[888,889,890],{"id":12,"depth":136,"text":13},{"id":305,"depth":136,"text":306},{"id":657,"depth":136,"text":660},"/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong","5",5000000,"2024-01-21","wiki/2024-01-21-arm-keil-mdk6-jiao-cheng","en-us:2024-01-21-arm-keil-mdk6-jiao-cheng","/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng","Arm Keil MDK6教程","md","wiki/2024-01-21-Arm-Keil-MDK6教程/ch5-进阶使用教程(全平台通用)",false,null,"en-US","en-us",{},{"title":5,"description":25},"/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong","_i18n/en-us/wiki/2024-01-21-Arm-Keil-MDK6教程/ch5-进阶使用教程(全平台通用)","DLZIcGDmiHLUeI1ZQv0xq6np0VHZEiNbuV_6TCwphYQ",[911,916,922,928,934,935,941],{"path":912,"stem":913,"title":863,"date":894,"chapter":914,"chapterSort":915,"docKey":896,"docRoot":897,"docTitle":898,"isWikiDoc":145,"isWikiIndex":901},"/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch1-jian-jie","_i18n/en-us/wiki/2024-01-21-Arm-Keil-MDK6教程/ch1-简介","1",1000000,{"path":917,"stem":918,"title":919,"date":894,"chapter":920,"chapterSort":921,"docKey":896,"docRoot":897,"docTitle":898,"isWikiDoc":145,"isWikiIndex":901},"/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch2-guan-fang-jiao-cheng","_i18n/en-us/wiki/2024-01-21-Arm-Keil-MDK6教程/ch2-官方教程","Official tutorial","2",2000000,{"path":923,"stem":924,"title":925,"date":894,"chapter":926,"chapterSort":927,"docKey":896,"docRoot":897,"docTitle":898,"isWikiDoc":145,"isWikiIndex":901},"/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch3-linux-pei-zhi-mdk6-huan-jing-jiao-cheng","_i18n/en-us/wiki/2024-01-21-Arm-Keil-MDK6教程/ch3-Linux配置MDK6环境教程","Linux MDK6 Environment Setup Tutorial","3",3000000,{"path":929,"stem":930,"title":931,"date":894,"chapter":932,"chapterSort":933,"docKey":896,"docRoot":897,"docTitle":898,"isWikiDoc":145,"isWikiIndex":901},"/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch4-windows-pei-zhi-mdk6-huan-jing-jiao-cheng","_i18n/en-us/wiki/2024-01-21-Arm-Keil-MDK6教程/ch4-Windows配置MDK6环境教程","Tutorial on Configuring MDK6 Environment on Windows","4",4000000,{"path":891,"stem":908,"title":5,"date":894,"chapter":892,"chapterSort":893,"docKey":896,"docRoot":897,"docTitle":898,"isWikiDoc":145,"isWikiIndex":901},{"path":936,"stem":937,"title":938,"date":894,"chapter":939,"chapterSort":940,"docKey":896,"docRoot":897,"docTitle":898,"isWikiDoc":145,"isWikiIndex":901},"/en-us/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch6-chang-jian-wen-ti","_i18n/en-us/wiki/2024-01-21-Arm-Keil-MDK6教程/ch6-常见问题","Frequently Asked Questions","6",6000000,{"path":897,"stem":942,"title":943,"date":894,"chapter":902,"chapterSort":944,"docKey":896,"docRoot":897,"docTitle":898,"isWikiDoc":145,"isWikiIndex":145},"_i18n/en-us/wiki/2024-01-21-Arm-Keil-MDK6教程/index","Arm-Keil-MDK6 Tutorial",0,{"variants":946},[947,948,951,954,957],{"path":891,"localeSlug":904,"i18nKey":900},{"path":949,"localeSlug":950,"i18nKey":900},"/zh-hant/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong","zh-hant",{"path":952,"localeSlug":953,"i18nKey":900},"/zh-hk/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong","zh-hk",{"path":955,"localeSlug":956,"i18nKey":900},"/zh-tw/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong","zh-tw",{"path":958,"localeSlug":959,"i18nKey":900},"/zh-cn/wiki/2024-01-21-arm-keil-mdk6-jiao-cheng/ch5-jin-jie-shi-yong-jiao-cheng-quan-ping-tai-tong-yong","zh-cn",[891,907,949,907,952,907,955,907,958,907],1780671797504]