怎么建立外贸网站手机app开发工具下载

张小明 2025/12/28 6:15:57
怎么建立外贸网站,手机app开发工具下载,新乡网站开发公司,渠道查官网概述 目前极海官方提供的 IDE 开发环境有 Keil/IAR/Eclipse。都能很好的完成开发#xff0c;但是 VS Code 配合 CMake 工具是更加“现代”的C/C开发环境#xff0c;本文提供了在 VS Code 环境下的开发经验#xff0c;以供参考。准备工作 必需的软件有#xff1a;cmake: 官网…概述目前极海官方提供的 IDE 开发环境有 Keil/IAR/Eclipse。都能很好的完成开发但是 VS Code 配合 CMake 工具是更加“现代”的C/C开发环境本文提供了在 VS Code 环境下的开发经验以供参考。准备工作必需的软件有cmake: 官网 https://cmake.orgninja: 官网 https://ninja-build.orgVS Code官网 https://code.visualstudio.comarm-clang 编译套件keil 自带~请从上述网站下载所需软件版本采用最新版即可。此外为了更好的使用 VS Code还需要安装两个扩展C/C Extension PackCMake Tools这里不再赘述扩展的安装方法。Note:ninja 的功能也可以由 make 提供。文件组织为便于叙述本文约定了如下的文件组织形式下面一一描述各项内容.vscode 文件夹VS Code 的配置文件夹。cmake 文件夹针对编译器的必须文件。G32R501_SDK 文件夹G32R501 SDK 库直接使用极海官网提供的 SDK 库。解压缩文件时请确保文件层级与上文所列一致。projects 文件夹用户项目文件夹。子目录需要满足以下的目录结构复制├─INC---头文件目录└─SRC---C文件目录如果实际目录结构与上面的不一致则需要修改 CMakeLists.txt 文件。CMakeLists.txt 文件CMake 构建所必需的文件下一节会详细说明。详细说明CMakeLists.txt 文件CMake 构建 C/C 工程是从工程根目录或者指定的某个目录下的 CMakeLists.txt 文件开始。CMakeLists.txt 描述了构建工程的源代码编译选项。CMake 工具根据这个文件生成 Makefile 或者 ninja.build 文件。最后由 make 工具或者 ninja 工具执行编译工作。CMakeLists.txt 遵循 CMake 相关语法具体可以参考官方说明或者相应教程。这里贴出了 CMakeLists.txt 的内容。文中以“#”开始的行为注释行可以参考注释行理解相关内容。复制# Geehy, G32R5xxcmake_minimum_required(VERSION 3.20)cmake_policy(SET CMP0123 NEW)project(g32r5xx_fw)set(TARGET_NAME g32r5xx_fw)# 检查 SDK 目录set(SDK_ROOT G32R5xx_SDK)get_filename_component(SDK_ROOT_ABS${SDK_ROOT}ABSOLUTE)if(NOT EXISTS${SDK_ROOT_ABS})message(FATAL_ERRORSDK_ROOT: ${SDK_ROOT} is not exists)endif()# 检查 APP 目录get_filename_component(APP_ROOT_ABS${APP_ROOT}ABSOLUTE)if(NOT EXISTS${APP_ROOT_ABS})message(FATAL_ERRORAPP_ROOT: ${APP_ROOT} is not exists)endif()# 检查分散加载文件set(SCATTER_FILE_ABS${SDK_ROOT_ABS}/device_support/g32r501/common/sct/${SCATTER_FILE})if(NOT EXISTS${SCATTER_FILE_ABS})message(FATAL_ERRORSCATTER_FILE: ${SCATTER_FILE_ABS} is not exists)endif()# 打印项目信息message(STATUSLIBRARY_TYPE:${LIBRARY_TYPE})message(STATUS SDK_ROOT:${SDK_ROOT_ABS})message(STATUS APP_ROOT:${APP_ROOT_ABS})message(STATUSSCATTER_FILE:${SCATTER_FILE_ABS})# 编译选项set(MCPU_FLAGS-mcpucortex-m52cdecp0pacbti -mfloat-abihard -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -mlittle-endian -ffunction-sections)set(CMAKE_C_FLAGS${CMAKE_CXX_FLAGS}${MCPU_FLAGS})set(CMAKE_CXX_FLAGS${CMAKE_CXX_FLAGS}${MCPU_FLAGS})set(CMAKE_EXE_LINKER_FLAGS${CMAKE_EXE_LINKER_FLAGS}--strict --scatter${SCATTER_FILE_ABS}--info summarysizes --map --load_addr_map_info --xref --callgraph --symbols --info sizes --info totals --info unused --info veneers --list project.map)# 源码file(GLOB APP_SRC${APP_ROOT_ABS}/source/*c)add_executable(${TARGET_NAME}${APP_SRC})set_target_properties(${TARGET_NAME}PROPERTIES SUFFIX.axf)# 宏定义target_compile_definitions(${TARGET_NAME}PRIVATE-DG32R501_EVAL -D__CORE_CPU0__ -D__G32R501XX__ -D__G32R501__ -D__ARM_ARCH_8_1M_MAIN___ -D__ARM_TARGET_COPROC)# include 目录target_include_directories(${TARGET_NAME}PRIVATE${APP_ROOT}/INC)target_include_directories(${TARGET_NAME}PRIVATE${APP_ROOT}/include)target_include_directories(${TARGET_NAME}PRIVATE${SDK_ROOT_ABS}/device_support/g32r501/common/device/Geehy)target_include_directories(${TARGET_NAME}PRIVATE${SDK_ROOT_ABS}/device_support/g32r501/common/device/CMSIS/Core/Include)target_include_directories(${TARGET_NAME}PRIVATE${SDK_ROOT_ABS}/device_support/g32r501/common/device/Geehy/system_eval/include)target_include_directories(${TARGET_NAME}PRIVATE${SDK_ROOT_ABS}/device_support/g32r501/common/include)target_include_directories(${TARGET_NAME}PRIVATE${SDK_ROOT_ABS}/driverlib/g32r501/driverlib)target_include_directories(${TARGET_NAME}PRIVATE${SDK_ROOT_ABS}/driverlib/g32r501/driverlib/inc)# SDK 源码file(GLOB_RECURSE CMSIS_SRC${SDK_ROOT_ABS}/device_support/g32r501/common/device/Geehy/*.c)target_sources(${TARGET_NAME}PRIVATE${CMSIS_SRC})file(GLOB DRIVERLIB_SRC${SDK_ROOT_ABS}/driverlib/g32r501/driverlib/*.c)target_sources(${TARGET_NAME}PRIVATE${DRIVERLIB_SRC})target_sources(${TARGET_NAME}PRIVATE${SDK_ROOT_ABS}/device_support/g32r501/common/source/device.c)# devicelib 类型项目必须添加的源码if(${LIBRARY_TYPE}STREQUALdevice_lib)file(GLOB DEVICE_SUPPORT_SRC${SDK_ROOT_ABS}/device_support/g32r501/common/source/*.c)list(APPEND DEVICE_SUPPORT_SRC${SDK_ROOT_ABS}/device_support/g32r501/common/g32r501_globalvariabledefs.c)target_include_directories(${TARGET_NAME}PRIVATE${SDK_ROOT_ABS}/device_support/g32r501/headers/include)target_sources(${TARGET_NAME}PRIVATE${DEVICE_SUPPORT_SRC})endif()# 生成 HEX 文件add_custom_command(TARGET${TARGET_NAME}POST_BUILDCOMMAND${FROMELF_EXECUTABLE}--i32 --output${TARGET_NAME}.hex [ DISCUZ_CODE_50 ]lt;TARGET_FILE:${TARGET_NAME}COMMENTCreating HEX file)# 生成 BIN 文件add_custom_command(TARGET${TARGET_NAME}POST_BUILDCOMMAND${FROMELF_EXECUTABLE}--bin --output${TARGET_NAME}.bin [ DISCUZ_CODE_50 ]lt;TARGET_FILE:${TARGET_NAME}COMMENTCreating HEX file)工程构建使用 CMake 搭建的开发C/C工程编译前需要先进行配置configure再进行编译。配置执行类似下面的命令行可以配置一个工程复制cmake-DCMAKE_BUILD_TYPE:STRINGDebug-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOLTRUE-DCMAKE_TOOLCHAIN_FILE:STRINGcmake/g32r501.cmake-DLIBRARY_TYPE:STRINGdevice_lib-DSCATTER_FILE:STRINGg32r501xe_cbus_flash.sct-DAPP_ROOT:STRINGprojects/app1-B_build-GNinja参数说明CMAKE_EXPORT_COMPILE_COMMANDS:BOOLTRUE 可选参数用于生成 compile_commands.json 文件便于 VS Code 开发使用。CMAKE_TOOLCHAIN_FILE:STRINGcmake/g32r501.cmake 必选参数指定 MCU 是 g32r501。CMAKE_BUILD_TYPE:STRINGDebug 构建类型可选的值有DebugReleaseRelWithDebInfo 和 MinSizeRel具体参考 cmake 文档。LIBRARY_TYPE:STRINGdevice_lib SDK 库类型可选值有device_libdriver_lib。SCATTER_FILE:STRINGg32r501xe_cbus_flash.sct 分散加载文件的文件名参考 G32R501_SDK*\device_support\g32r501\common\sct 目录。APP_ROOT:STRINGprojects/app1 用户项目目录打开命令行窗口切换到工程根目录。执行上述命令前请先定义一个环境变量ARMCLANG_PATH值是 armclang.exe 所在目录复制setARMCLANG_PATHC:\Users\USER_NAME\AppData\Local\Keil_v5\ARM\ARMCLANG\bin其中 C:\Users\USER_NAME\AppData\Local\Keil_v5\ARM\ARMCLANG\bin 就是我的电脑上 ARM-CLANG 编译器的目录请替换成实际值。编译在命令行里执行如下命令就可以编译整个工程复制ninja-C _build编译的固件会在 _build 文件夹下g32r5xx_fw.hex 和 g32r5xx_fw.bin。在 VS Code 里编辑和编译“一个小手术”为了能让 VS Code 更好的工作我们在打开 VS Code 前先弄好 VS Code 的配置。在 .vsode 下用文本编辑器创建 settings.json 文件并写入如下内容文件中cmake.configureArgs部分内容与前文所述的“配置”部分大致相同作用也就很明显了。这些参数控制着 VS Code 更好的为我们工作。经过前面的步骤就可以启动 VS Code 打开工程所在根目录就可以在 VS Code 里愉快地编码了。更便捷地使用 VS CodeVS Code 提供了“任务”机制能让我们更好的进行开发。这里列举作者认为非常有助于提高效率的一个功能实现“一键下载”。点击 VS Code 菜单【终端】→ 【配置任务...】在弹出的下拉列表里选择【使用模板创建 tasks.json 文件】→ 【Others 运行任意外部命令的示例】。操作完成后会在 .vscode 目录下生成一个 tasks.json 文件并打开。编辑这个文件tasks.json 文件里 tasks列表定义了若干可执行的命令及响应的命令参数。上述示例中名为 “Flash(MDK)” 的任务实际调用 keil 进行烧录“Flash(JLINK)”任务是调用 JLink 进行烧录。开发人员可以照例编排其他任务以提高开发效率。附录CMakeLists.txt 一些语法变量复制set(TARGET_NAME g32r5xx_fw)上面的 set 语句定义了一个名为 TARGET_NAME 的变量赋值g32r5xx_fw。需要使用变量的值需要用 \$\{\} 包含变量名如\$\{TARGET_NAME\}。显示/打印信息复制message(FATAL_ERRORSCATTER_FILE ${SCATTER_FILE} is not exists)message(STATUSTOP_DIR:${TOP_DIR})message 可以在配置过程中显示/打印一些信息。如果是 FATAL_ERROR 类型的信息表明发生严重错误配置构建过程立即结束配置失败。获取文件夹下的源文件列表复制file(GLOB APP_SRC ${APP_ROOT}/SRC/*.c)file(GLOB_RECURSE APP_SRC ${APP_ROOT}/SRC/*.c)第一句获取 ${APP_ROOT}/SRC 目录下全部的 C 代码文件。第二句获取 ${APP_ROOT}/SRC 目录及其子目录下全部的 C 代码文件递归。如果只是个别文件可以这样写复制set(APP_SRC${APP_ROOT}/SRC/a.c${APP_ROOT}/SRC/b.c${APP_ROOT}/SRC/c.c)一些内置的变量cmake 有一些有用的内置变量CMAKE_SOURCE_DIR指向顶级 CMakeLists.txt 文件所在的目录也称为源目录。CMAKE_BINARY_DIR指向构建目录即 CMake 构建的输出目录。CMAKE_CURRENT_LIST_DIR: 当前 CMakeLists.txt 所在目录。CMAKE_BUILD_TYPE指定构建类型如 Debug、Release、RelWithDebInfo 和 MinSizeRel。/// 全文完。---------------------作者wangqy_ic链接https://bbs.21ic.com/forum.php?modviewthreadtid3456794来源21ic.com此文章已获得原创/原创奖标签著作权归21ic所有任何人未经允许禁止转载。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

洛阳高端网站建设wordpress 文章标题外链

RAG(Retrieval-Augmented Generation,检索增强生成)技术经过近两年的快速发展,已经从初期的概念验证阶段进入到了大规模企业级应用的关键时期。 在这个过程中,单纯依靠简单的文档切分和基础的向量检索技术已经无法满足…

张小明 2025/12/28 6:15:25 网站建设

网站建设推广专员岗位职责什么叫平台公司

第一章:Open-AutoGLM 功能模块化整合Open-AutoGLM 作为一款面向自动化生成语言模型任务的开源框架,其核心优势在于功能的高度模块化与灵活的集成能力。通过解耦数据预处理、模型调度、推理优化与结果后处理等关键环节,开发者可按需组合功能单…

张小明 2025/12/28 6:14:52 网站建设

什么软件可以做网站动图html5黑色网站

当你站在泰拉瑞亚的星空下,是否曾幻想过:如果这个世界还有更多未知等待探索该有多好?tModLoader正是实现这个梦想的钥匙。作为官方认证的模组加载器,它为你打开了通往无限创意世界的大门。 【免费下载链接】tModLoader A mod to m…

张小明 2025/12/28 6:14:19 网站建设

教育网站前置审批有哪些网站做的比较好看的

AI元人文构想:迈向人类与AI的意义共治 AI元人文构想:迈向人类与AI的意义共治 ——从“价值对齐”到“文明共筑”的范式革命 摘要: 本文旨在系统阐述“AI元人文构想”这一应对智能时代价值治理困境的全新理论范式。该构想批判了传统“价值对…

张小明 2025/12/28 6:13:46 网站建设

清原招聘网站建设企业网站建设需求文档

在医学影像技术飞速发展的今天,MRiLab作为一款专业的磁共振成像仿真平台,正在为科研人员和开发者开启一扇通往精准仿真的新大门。想象一下,在投入昂贵的硬件设备之前,就能在虚拟环境中完整模拟MRI成像全过程,这无疑为磁…

张小明 2025/12/28 6:12:39 网站建设

网页建站如何保存分享动漫制作专业大一需不需要买电脑

在工厂生产线末端,传统质检靠人工目视排查,既耗力又易漏检微小缺陷。而AI缺陷检测判定系统,就像一位永不疲倦的“智能质检员”,能精准捕捉产品表面划痕、内部裂纹等问题。作为产品经理,拆解其技术流程,就能…

张小明 2025/12/28 6:12:00 网站建设