龙芯LS2K0300久久派上手体验

介绍

芯片

龙芯2K0300芯片是一款基于LA264处理器核的多功能SoC芯片,可广泛适用于工业控制、通信设备、信息家电和物联网等领域;该芯片采用高集成度设计,可提供丰富的功能接口,满足多场景应用需求,同时支持低功耗技术,能够在低能耗条件下进行高效处理,具有以下特色:

  • 处理器主频1GHz(功耗 < 1W),64位双发射超标量LA264,支持LoongArch指令系统,有286个引脚
  • 16位DDR4-1600控制器,支持ECC校验
  • 32KB一级指令缓存和32KB一级数据缓存,支持ECC校验;512KB二级共享缓存,支持ECC校验
  • 集成2个USB2.0、2个GMAC、1路LCD显示
  • 支持处理器核时钟动态变频;支持主要模块时钟动态关闭
  • 1个I2S、4个CAN-FD、4个SPI、2个QSPI、2个eMMC、2个SDIO、1个LIO、8通道ADC、4个I2C、10个UART,4个PWM、3组TIMER、106个GPIO、RTC、HPET、JTAG等

在这里插入图片描述

开发板

久久派搭载龙芯SOC芯片LS2K0300,板载Ethernet、WIFI / BT、USB、ADC、Audio、Display、RTC等功能或接口,内存容量512M,EMMC容量为4G,电源供电为USB Type C口,有2路拓展引脚

在这里插入图片描述

引脚资源

板载2 x 15 Pin IO接口

PIN信号定义备注PIN信号名称备注
1GND2P3V3
3PWM2GPIO884UART0_TXD
5PWM3GPIO896UART0_RXD
7CAN2_TXGPIO738UART1_TXD
9CAN2_RXGPIO7210UART1_RXD
11CAN3_TXGPIO7512UART2_TXD
13CAN3_RXGPIO7414UART2_RXD
15I2C1_SCLGPIO5016I2C0_SCLGPIO48
17I2C1_SDAGPIO5118I2C0_SDAGPIO49
19GND20GND
21SPI2_CLKGPIO64 / TXD522SPI1_CLKGPIO60 / RXD4
23SPI2_CSnGPIO67 / TXD324SPI1_CSnGPIO63 / RXD8
25SPI2_MISOGPIO65 / RXD526SPI1_MISOGPIO61 / TXD4
27SPI2_MOSIGPIO66 / RXD328SPI1_MOSIGPIO62 / TXD8
29GND30P5V5V电源

LCD接口(可以用FPC54转换成排针引脚来使用)

PIN信号定义备注
1TSX+扩展触摸信号, NC
2TSX-扩展触摸信号, NC
3TSY+扩展触摸信号, NC
4TSY-扩展触摸信号, NC
5、 15、 24、 33、 42、 46、 48GND
6LS2K_GPIO54电源使能(硬件默认上拉)
7LS2K_I2C_SDA0
8LS2K_I2C_SCL0
9、 10、 11、 12NC
13LS2K_GPIO52触摸板中断(硬件默认上拉)
14LS2K_GPIO53触摸板复位(硬件默认上拉)
16 - 23LS2K_LCD_D[0:7]B 数据
25 - 32LS2K_LCD_D[8:15]G 数据
34 - 41LS2K_LCD_D[16:23]R 数据
43LS2K_LCD_HSYNC水平同步
44LS2K_LCD_VSYNC垂直同步
45LS2K_LCD_EN数据有效
47LS2K_LCD_CLK时钟输出
49LS2K_PWM0背光控制(GPIO87)
50 - 54VCC_5V

ADC接口

PIN信号定义备注
1P3V33.3V 电源输出
2GND0
3ADC 通道 40/4 通道可以独立采样, 也可以作为差分采样
4ADC 通道 00/4 通道可以独立采样, 也可以作为差分采样
5ADC 通道 11/5 通道可以独立采样, 也可以作为差分采样
6ADC 通道 51/5 通道可以独立采样, 也可以作为差分采样
7ADC 通道 22/6 通道可以独立采样, 也可以作为差分采样
8ADC 通道 62/6 通道可以独立采样, 也可以作为差分采样
9ADC 通道 33/7 通道可以独立采样, 也可以作为差分采样
10ADC 通道 73/7 通道可以独立采样, 也可以作为差分采样

连接

供电:USB Type C线,这个没有串口功能,只是纯粹的供电

串口:CH340T USB串口线连接UART 0,推荐使用MobaXterm,串口配置波特率115200、数据位8、停止位1、奇偶校验位None

联网:参考另一篇文章,设置虚拟机网络为桥接方式联网,在串口终端调用命令给开发板分配一个IP,可以实现开发板直连虚拟机PC

udhcpc -i eth0

开发环境

前置依赖

toolchain:loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1.tar.xz

kernel:linux-4.19-0614.tar.gz

rootfs:loongos-qt.cpio

编译内核

先安装bison、flex

sudo apt install bison flex libncurses5‐dev libssl-dev

导入toolchain环境变量

export PATH=$PATH:/home/asensing/loongson/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin

拷贝配置

cp arch/loongarch/configs/loongson_2k300_defconfig .config

配置内核

make menuconfig ARCH=loongarch

编译内核,成功了会在内核根目录下生成vmlinuz

 make vmlinuz ARCH=loongarch CROSS_COMPILE=loongarch64-linux-gnu- -j8

清理内核

make clean ARCH=loongarch CROSS_COMPILE=loongarch64-linux-gnu- -j8

拷贝vmlinuz到指定位置/boot目录下,设备树默认是编译到内核里边去的

scp vmlinuz root@192.168.137.111:/boot

外设调试

gpio

以文件系统下GPIO调试为例:

  • 设置和查看GPIO状态:ls -l /sys/class/gpio

  • 导出GPIO:echo XX > /sys/class/gpio/export

  • 取消导出GPIO:echo XX > /sys/class/gpio/unexport

  • 设置GPIO电平值:echo X > /sys/class/gpio/gpioX/value

  • 查看GPIO电平值:cat /sys/class/gpio/gpioX/value

  • 设置GPIO工作模式:echo “out” >/sys/class/gpio/gpioX/direction

  • 查看GPIO寄存器的信息 :/sys/class/gpio/gpiochipX

  • 查看GPIO占用:cat /sys/kernel/debug/gpio

  • 查看GPIO中断:cat /proc/interrupts

任意占空比的方波

while true; 
do 
	echo 1 > /sys/class/gpio/gpio48/value; 
	sleep 0.1; 
	echo 0 > /sys/class/gpio/gpio48/value; 
	sleep 0.3; 
done;

i2c

以i2c-tool工具为例(BH1750设备调试):

  • 先查看/dev目录下是否有i2c总线节点,没有的话要检查一下设备树有没有i2c的总线节点
  • 查看i2c总线上的从设备:i2cdetect -y 0
  • 读取数据:i2cget -y 0 0x23 0x00
  • 写入数据:i2cset -y 0 0x23 0x00 0x10

pwm

以pwm0的配置为例

  • 导出节点:echo 0 > /sys/class/pwm/pwmchip0/export
  • 取消导出:echo 0 > /sys/class/pwm/pwmchip0/unexport
  • 开启:echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
  • 关闭:echo 0 > /sys/class/pwm/pwmchip0/pwm0/enable
  • 设置周期:echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/period
  • 设置极性(normal或inversed):echo “normal” > /sys/class/pwm/pwmchip0/pwm0/polarity

adc

以ADC通道0为例

  • 查看ADC数值:cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw
  • 查看ADC分辨率:cat /sys/bus/iio/devices/iio:device0/in_voltage_scale

串口

设置串口1波特率115200、数据位8、停止位1、奇偶校验位None

 stty -F /dev/ttyS1 speed 115200 cs8 -parenb -cstopb raw -echo -echoe -echok -echoctl -echoke

设置输入、输出波特率

stty -F /dev/ttyS1 ispeed 9600 ospeed 9600

读取串口数据

cat /dev/ttyS1

快速开发

在QtCreator中自定义Compilers

在这里插入图片描述

自定义Debuggers

在这里插入图片描述

添加远程设备

在这里插入图片描述

配置Kits
在这里插入图片描述

设置完这几步,即可在QtCreator里边很方便地进行非Qt类软件的交叉编译以及移植开发

总结

  • 这个板子很小(几乎跟树莓派一样大),IO资源确实非常丰富,甚至可以用FPC 54 PIN引出GPIO来使用
  • BSP还不是很完善,刚出的内核reboot会panic,部分外设使用还是有问题
  • 资料这一块还不多,希望官方加大开放力度,一块好的SOC需要有良好的开发生态
  • RAM偏小,跑GUI可能会有点吃力,希望出个大内存版本
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下里巴人hywing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值