OneOS学习笔记01 用VSCode编辑源码, 调用keil进行编译

keil有点古典  记录一下在vscode上操作oneos工程. 

现在的程度是打make调用keil的armcc来编译, 没用gcc

make install 调用stm32cube programmer来下载flash

环境不一致可能不好使, 我的实验的环境是: 

win10

vscode v1.63.2

keil: 5.33.0.0

第一步,  vscode浏览代码不报红线

编辑vscode的json文件

贴入或者按需修改

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}\\**",
		".\\application",
      		".\\board",
      		".\\board\\CubeMX_Config\\Inc",
      		//".\\board\\packages",
      		".\\board\\ports",
      		"..\\..\\arch\\arm\\armv7m\\include",
      		"..\\..\\common\\include",
      		"..\\..\\components\\cli\\include",
      		"..\\..\\components\\diagnose\\stack_trace",
      		"..\\..\\components\\dlog\\include",
      		"..\\..\\components\\fs\\include",
      		"..\\..\\components\\fs\\include\\fatfs",
      		"..\\..\\components\\position",
      		"..\\..\\components\\position\\gnss_pos",
      		"..\\..\\components\\position\\gnss_pos\\prot",
      		"..\\..\\components\\position\\gnss_pos\\rcvr",
      		"..\\..\\components\\position\\net_pos",
      		"..\\..\\components\\shell\\include",
      		"..\\..\\drivers",
      		"..\\..\\drivers\\audio",
      		"..\\..\\drivers\\boot\\cotex-m",
      		"..\\..\\drivers\\bus",
      		"..\\..\\drivers\\can",
      		"..\\..\\drivers\\console",
      		"..\\..\\drivers\\dma",
      		"..\\..\\drivers\\fal",
      		"..\\..\\drivers\\graphic",
      		"..\\..\\drivers\\hal\\st\\STM32L4xx_HAL\\CMSIS\\Device\\ST\\STM32L4xx\\Include",
      		"..\\..\\drivers\\hal\\st\\STM32L4xx_HAL\\CMSIS\\Include",
      		"..\\..\\drivers\\hal\\st\\STM32L4xx_HAL\\STM32L4xx_HAL_Driver\\Inc",
      		"..\\..\\drivers\\hal\\st\\devices",
      		"..\\..\\drivers\\hal\\st\\drivers",
      		//"..\\..\\drivers\\hal\\st\\drivers\\config",
      		"..\\..\\drivers\\hwcrypto",
      		"..\\..\\drivers\\i2c",
      		"..\\..\\drivers\\infrared",
      		"..\\..\\drivers\\misc",
      		"..\\..\\drivers\\mtd",
      		"..\\..\\drivers\\pin",
      		"..\\..\\drivers\\rtc",
      		"..\\..\\drivers\\sensors",
      		"..\\..\\drivers\\serial",
      		"..\\..\\drivers\\spi",
      		"..\\..\\drivers\\spi\\sfud\\inc",
      		"..\\..\\drivers\\timer",
      		"..\\..\\drivers\\usb\\usb_device",
      		"..\\..\\drivers\\usb\\usb_device\\Class\\CDC\\Inc",
      		"..\\..\\drivers\\usb\\usb_device\\Core\\Inc",
      		"..\\..\\drivers\\watchdog",
      		"..\\..\\kernel\\include",
      		"..\\..\\libc\\include",
      		"..\\..\\libc\\include\\armlibc",
      		"..\\..\\libc\\include\\extension",
      		"..\\..\\thirdparty\\mpu6xxx\\inc"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "USE_HAL_DRIVER",
                "OS_TASK_SWITCH_NOTIFY",
                "STM32L475xx"
            ],
            "compilerPath": "C:\\Keil_v5\\ARM\\ARMCC\\bin\\armcc.exe",
            "cStandard": "c99",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x86"
        }
    ],
    "version": 4
}

第二步, 建立makefile文件,   keil的路径注意看实际位置修改

make编译,  make install 下载到MCU, make cube打开one os cube

KEIL="C:\Keil_v5\UV4\UV4.exe"
PROJX=".\project.uvprojx"
LOG=".\keil_build.log"
CBMXP="C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe"
BIN=build\keil\Obj\project.axf
CUBE=D:\10_Special_Project\OneOS\OneOS-Cube-V1.3.3\components\cmder\OneOS-Cube.exe

# Will prevent it from exiting even when somehing failied
all:
	-$(KEIL) -j0 -b $(PROJX) -o keil_build.log
	@type $(LOG)
erase:
	-$(CBMXP) -c port=SWD freq=4000 -e all
install:
	-$(CBMXP) -c port=SWD freq=4000 -e all -d $(BIN) 0x80000000 -v -s 0x08000000
cube:
	-$(CUBE)
clean:
	-del $(BIN)
dist-clean:
	-rm oneos.bin
	-$(KEIL) -j0 -c $(PROJX) -o keil_build.log
	@type $(LOG)

效果: 

 鼠标悬停信息和代码补全都来了 

make install 下载

https://download.csdn.net/download/u011493332/76236236icon-default.png?t=LBL2https://download.csdn.net/download/u011493332/76236236

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在移植 Linux WiFi 代码到 OneOS 上,需要遵循以下步骤: 1. 收集所需的工具: 一台运行 Linux 的 PC 以及针对 OneOS 的交叉编译器 2. 收集需要移植的 WiFi 驱动源代码 3. 在 PC 上编译 WiFi 驱动并在运行正常的 Linux 系统上进行测试 4. 使用交叉编译器将 WiFi 驱动编译OneOS 的可执行代码 5. 将编译出的可执行代码上传到 OneOS 系统中 6. 在 OneOS 上运行 WiFi 驱动并测试其功能是否正常 这些步骤中的具体细节可能会因为不同的 WiFi 驱动或 OneOS 版本而有所不同, 请仔细阅读相关文档。 注意:由于移植的难度程度和系统的差异,移植 Linux WiFi 代码到 OneOS 上可能需要一定的 Linux 驱动开发经验和熟悉 OneOS 的知识。 ### 回答2: 将Linux的WiFi代码移植到OneOS上需要以下步骤: 1. 确定OneOS的硬件支持:首先,需要确定OneOS支持的硬件平台是否与Linux的WiFi模块兼容。查看OneOS的支持列表或者相关文档,确认所使用的硬件平台是否支持WiFi功能。 2. 确定WiFi模块的适配层:OneOS与Linux的内核不同,所以需要适配WiFi模块的代码和驱动程序。可以根据硬件平台的特性,选择合适的适配层,将WiFi模块的驱动程序和相关代码嵌入到OneOS的内核中。 3. 调整硬件接口和功能:OneOS的API和Linux的API可能存在差异,所以在移植过程中需要调整硬件接口和功能的相应代码。这包括初始化、配置和操作WiFi模块等。 4. 进行编译和调试:移植完WiFi代码后,进行编译和调试,确保代码的正确性和稳定性。使用OneOS提供的工具链进行编译,并在实际硬件平台上进行测试和调试。 5. 验证和优化:完成编译和调试后,需要验证WiFi模块的功能是否正常。进行功能测试,确保WiFi的连接和传输正常。如果遇到问题,可以进行优化和调整,以满足OneOS的要求和性能。 在移植过程中需要注意OneOS的内核架构和功能特性,与Linux有所不同。因此,需要仔细了解OneOS的文档和代码,确保正确移植WiFi功能。 ### 回答3: 将Linux的WiFi代码移植到OneOS上,需要经过一系列的步骤和适应性调整。 首先,需要将Linux的WiFi驱动代码从Linux内核源码中提取出来。可以通过查看Linux内核源码中的wifi驱动目录,将相关文件复制到OneOS的代码工程中。 然后,需要根据OneOS的内核结构和设备驱动框架,对从Linux中提取出来的WiFi驱动代码进行适当的修改和调整。在此过程中,可能需要根据OneOS的API和设备管理机制进行适配,以兼容OneOS的驱动架构和网络栈。 接下来,要根据OneOS的文件系统、内存管理和网络协议栈等子系统,对WiFi驱动进行相应的配置和参数设置。这包括将WiFi驱动与OneOS的网络协议栈集成,确保其与OneOS的网络接口、网络协议栈以及网络协议栈的配置相匹配。 然后,需要针对OneOS的硬件抽象层(HAL)进行适配。这可能涉及到对硬件抽象层代码的修改,以使WiFi驱动能够正确地与OneOS的硬件平台进行通信和交互。 最后,还需要进行一系列的编译、链接和调试工作,确保WiFi驱动在OneOS上能够正确地运行和提供相应的网络功能。 综上所述,将Linux的WiFi代码移植到OneOS上需要从Linux内核中提取并适应代码、对接OneOS的驱动架构和网络栈、与硬件抽象层进行适配,最终完成编译和调试工作。这个过程需要开发者对Linux和OneOS的内核、驱动架构和网络协议栈有一定的了解和经验,以确保驱动的正确性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值