首页 > 其他分享 >LuckFox-pico 入门记录一:编译环境与GPIO

LuckFox-pico 入门记录一:编译环境与GPIO

时间:2024-05-17 20:51:34浏览次数:23  
标签:LuckFox 虚拟机 window pico https linux 字符串 GPIO

LuckFox RV1106 点灯

本文使用VMwave+ubuntu20.04虚拟机,并用CLion开发linux,简单记录一下配置过程;

1 虚拟机安装

拿到板子,首先是配置环境,虚拟机选择ubuntu20.04,安装教程随便搜一下就行,网络配置选择NAT就行,可以不选择桥接模式,其他没有什么注意事项。
比较难的一点是samba共享文件夹配置,记得安装sumba前更新apt,更新apt后python版本不匹配的问题好像就没了:

sudo apt update

具体步骤,可以参考博客:
https://cn.linux-console.net/?p=13157
如果按照上篇博客配置完成后,在虚拟机中无法添加文件,需要为虚拟机的sambashare更改权限

sudo chmod 777 sambashare

window端访问虚拟机,需要知道虚拟机的ip地址,在ubuntu中使用ifconfig指令获取虚拟机ip地址

ifconfig 

若window端,无法访问虚拟机,尝试重启window端电脑,一般就可以连上共享文件夹。

2 烧录sdk

烧录sdk,可以参考博客:
https://blog.csdn.net/SuperiorEE/article/details/133611634
以及LuckFox 的wiki教程:
https://wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-SDK
不过其gitee地址貌似clone不了,建议在window端下载压缩包,然后使用共享文件传递至虚拟机部分
烧录SDK若是烧录失败,并且在设备管理中的驱动带有感叹号,需要关闭window的驱动强制签名,具体步骤参照:
https://zhuanlan.zhihu.com/p/622920268
至此应该能烧录sdk了

3 GPIO测试

可以直接参考博客:
https://cn.linux-console.net/?p=13157
以及wiki:
https://wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-GPIO
常用命令有:
连接开发板的命令

adb connect 172.32.0.93
adb -s 172.32.0.93:5555 shell
adb disconnect 172.32.0.93
adb push LuckFox1 /userdata/LinuxTest/

GPIO操作的命令

echo 55 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio55/direction 
echo 1 > /sys/class/gpio/gpio55/value    
echo 55 > /sys/class/gpio/unexport

简单测试通过后,尝试修改SDK并编译

SDK编译

更改设备书后,SDK编译可以参考:
https://wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-GPIO#5修改设备树
如果过程中报错/usr/bin/env:'python':No such file or directory,可以参考博客:
https://www.cnblogs.com/chenmoyu/p/15527312.html
不要尝试直接卸载默认python,虚拟机容易崩溃。

Clion配置

CLion建议安装在window端,安装在虚拟机中不太好用,可以用CLion连接虚拟机中的编译器,然后使用Remote host terminal进行开发,效果会好一点。
CLion配置见博客,toolchain部分如果只用c开发的话,可以只选择C编译器gcc和调试gdb:
https://sjtu-robomaster-team.github.io/campus-competition-2-Clion_SSH/
配置好的样子:

部署(deployment)配置的作用,是你在window端每次编译完成后,直接同步到linux虚拟机端,十分好用,建议配置,配置完成见:


Local path:为window端的文件地址
deployment path:为linux端文件地址
IP地址为linux的地址,见上文的ifconfig

常用函数记录

snprintf()
函数原型:

int snprintf(char *str, size_t size, const char *format, ...)

(1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0');

(2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\0'),返回值为欲写入的字符串长度。
perror函数
perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。
system函数

int system(const char * command)

执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名。另,在windows系统下参数字符串不区分大小写。

说明:在windows系统中,system函数直接在控制台调用一个command命令。
在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程。
函数返回值

命令执行成功返回0,执行失败返回-1。
linux cat(concatenate) 命令

cat [选项] [文件]

用于连接文件并打印到标准输出设备上,它的主要作用是用于查看和连接文件。

标签:LuckFox,虚拟机,window,pico,https,linux,字符串,GPIO
From: https://www.cnblogs.com/muheandrabbit/p/18198590

相关文章

  • GPIO三种输出状态:推挽输出 / 开漏输出 / 高阻态
    一、GPIO基本的输出方式:  GPIO有三种状态:高电平,低电平,浮空/高阻态  设计时发现芯片的管脚描述中:有的支持推挽输出,有的支持开漏输出。就是GPIO的三种状态的组合 二、推挽输出(push-pull):描述GPIO输出高低电平时,电流的一个动作。要么推出去,要么挽回来。(1)推出去:上端的MOS管......
  • 树莓派4b openwrt 安装RPI.GPIO控制PWM风扇
    1、安装python3#opkgupdate#opkginstallpython3-base#opkginstallpython3#opkginstallpython3-pip#opkginstallpython3-dev2、安装RPI.GPIO#pipinstallrpi.gpio3、GPIO控制PWM风扇###交互模式演示代码#pythonimportRPi.GPIOasGPIO#GPIO设置GPIO.s......
  • 基于pinctrl和GPIO子系统的按键驱动程序
    嵌入式驱动开发中pinctrl和GPIO子系统使用频率非常高,其中pinctrl子系统主要用于复用和配置引脚,GPIO子系统用于设置GPIO的输入/输出,向引脚写入数据或者从引脚读取数据。一个引脚可以复用为多种不同的功能,因此要使用GPIO子系统首先要先把引脚配置为GPIO功能。下面将分为两部分记录如......
  • 初探pinctrl子系统和GPIO子系统
    前言:在前面的led驱动程序和按键驱动程序中,无论是最传统的方法,还是总线设备驱动模型,还是基于设备树的总线设备驱动模型,都是直接操作寄存器的方法。驱动开发的本质确实是操作寄存器,但是一个芯片有几百个引脚,只是操作少数的几个引脚还好,如果是大量的引脚,比如LCD接口的引脚几十个,一个......
  • 学习记录+vcode+GPIO例程+正点原子 DNESP32S3 开发板教程-IDF 版
    第一个程序:UART模式和JTAG模式,配置完成不同。配置主要就是.vscode文件夹中 c_cpp_properties.json,tasks.json,launch.json,settings.json四个文件。一个想法:备份UART模式和JTAG模式的配置文件,用时直接文件替换。简单粗暴方式是.vscode文件夹替换。当然每次要选好串口、设置目标......
  • 基于Luckfox Pico的opencv使用UDP协议与ubuntu传输摄像头数据-小白进阶
    使用UDP传输opencv的mat数据并显示本教程适用于进阶的小白尝试先说一下背景吧,正在工作的我,突然间看到淘宝上有个很漂亮的价格还不错的linux小板子,遂买下。没错,工作太无聊以至于开始摸鱼学习~但奈何每天工作完回家就像躺着,所以板子到手都快半年了才开始研究实现了简陋的摄像头......
  • Luckfox Pico Ubuntu server 安装桌面环境
    LuckfoxPicoUbuntuserver安装桌面环境RV1103/RV1106是一款专门用于人工智能相关应用的高度集成IPC视觉处理器SoC。它基于单核ARMCortex-A732位内核,集成了NEON和FPU,并内置NPU支持INT4/INT8/INT16混合运算,计算能力高达0.5TOPs。https://wiki.luckfox.com/......
  • GPIO模式
    GPIO模式输出模式推挽输出用PMOS和NMOS协同工作电压输出为VDD和VSS芯片内部电压驱动驱动能力弱开漏输出只有NMOS工作NMOS断低通高借助外部电压驱动复用推挽输出复用开漏输出为什么复用?引脚除了输入同时还可以做片上外设(I2C、SPI等)输入模式上拉输入默认为高电平......
  • 微雪 esp32c3 深度睡眠和 gpio 唤醒
    当项目由电源适配器供电时,我们一般不会太关心功耗。但是,如果要使用电池为项目供电,则需要精打细算。esp32深度睡眠在深度睡眠模式下,CPU、大多数RAM和所有数字外围设备都可以关闭。从深度睡眠中出来后,芯片通过复位重新启动,并从一开始就开始执行程序。系统无法自动进入深度睡眠......
  • 15_pinctl和gpio子系统
    pinctl和gpio子系统1.什么是pinctrl和gpio子系统?​ pinctrl子系统是用来设置引脚的复用关系和电气属性的,gpio子系统是当pinctrl子系统把引脚的复用关系设置为gpio功能以后就可以使用gpio子系统来操作引脚了,比如引脚的输入输出,高低电平等2.LinuxPinctrl子系统提供的功能是......