DUOS
- System on Chip: SOPHGO SG2000
- CPU:
64-bit T-Head C906 1.0 GHz (Main Processor)
64-bit T-Head C906 700 MHz (Co-Processor)
64-bit Arm Cortex-A53 1.0 GHz (Alternate Main Processor)
MCU: 8051 with 6 KB SRAM
Memory: SIP DRAM 512 MB
TPU: 0.5 TOPS INT8
Storage: 1 x microSD Connector, 1 x eMMC Pad
USB: 1 x Type-C for Power and Data or 1 x USB 2.0 A Port Host
MIPI CSI: 1 x 16P FPC Connector (MIPI CSI 2-Lane), 1 x 15P FPC Connector (MIPI CSI 2-Lane)
Sensor Support: 5M @ 30 FPS
MIPI DSI: Via GPIO Header (MIPI DSI 4-Lane)
Ethernet: 100 Mbps Ethernet Port (RJ45)
Wireless: Optional Wi-Fi 6 / Bluetooth 5
Audio: Via GPIO Pin
GPIO: Up to 39 x GPIO Pin (via 2 x 26-Pin GPIO Header)
Others: 1 x Boot Switch, 1 x Recovery Key, 1 x Reset Key
Milk-V DuoS é um modelo atualizado do Duo, apresentando um controlador principal SG2000 atualizado com uma memória maior de 512 MB e recursos IO expandidos. Ele integra recursos sem fio com WI-FI 6/BT 5 e vem equipado com uma interface USB 2.0 HOST e uma porta Ethernet de 100 Mbps para conveniência do usuário. Suportando câmeras duplas (2x MIPI CSI de 2 pistas) e saída de vídeo MIPI (MIPI DSI de 4 pistas), permite aplicações versáteis. O dispositivo também suporta a alternância entre inicialização RISC-V e ARM por meio de um switch. Com funcionalidade aprimorada, o DuoS é mais adequado para uma variedade de cenários com requisitos de desenvolvimento de projetos mais complexos.
Introdução do SG2000
SG2000 é um chip de alto desempenho e baixo consumo de energia projetado para vários campos de produtos, como câmeras IP de vigilância inteligente de ponta, máquinas locais de reconhecimento facial e dispositivos domésticos inteligentes. Ele integra compactação e decodificação de vídeo H.264/H.265 e recursos de ISP. Ele suporta vários algoritmos de aprimoramento e correção de imagem, como ampla faixa dinâmica HDR, redução de ruído 3D, desembaçamento e correção de distorção de lente, fornecendo aos clientes qualidade de imagem de vídeo de nível profissional.
O chip também integra uma TPU interna, fornecendo aproximadamente 0,5TOPS de poder de computação em operações INT8. O mecanismo de agendamento TPU especialmente projetado fornece fluxo de dados de alta largura de banda com eficiência para núcleos de unidades de TensorFlow. Ele também oferece aos usuários um poderoso compilador de modelo de Deep Learning e um kit de desenvolvimento de software SDK. As principais estruturas de Deep Learning, como Caffe, Pytorch, ONNX, MXNet e TensorFlow (Lite), podem ser facilmente portadas para esta plataforma.
Preliminar pública do SG2000
Abrimos o código-fonte do DATASHEET Preliminar Pública e do TRM do SG2000 para o GitHub. Por favor, confira .
DuoS GPIO
Mapa de pinos GPIO
GRUPO | ENDEREÇO | PORTA | CHIP | NUM | NOME | INICIO |
---|
gpio0 | gpio@03020000 | porta | gpiochip0 | 480-511 | XGPIOA | 480 -XGPIOA[0] |
gpio1 | gpio@03021000 | portb | gpiochip1 | 448-479 | XGPIOB | 448 -XGPIOB[0] |
gpio2 | gpio@03022000 | portc | gpiochip2 | 416-447 | XGPIOC | 416 -XGPIOC[0] |
gpio3 | gpio@03023000 | portd | gpiochip3 | 384-415 | | |
gpio4 | gpio@05021000 | porte | gpiochip4 | 352-383 | PWR_GPIO | 352 -PWR_GPIO[0] |
GPIO Header J3
usa níveis lógicos de 3,3 V.
GND*: O pino 9 é um GPIO de baixo nível na versão V1.1 do hardware e é GND na versão V1.2 e posterior.
NOTA: O I2C no conector J2 da câmera CSI é I2C2, portanto, ao usar a câmera CSI no J2, I2C2 no conector do pino J3 não está disponível. |
| | | | | | | | | | | | | | |
---|
GPIO Header J4
usa níveis lógicos de 1,8V.
LED azul
NOME | SG2000 | NUMERO |
---|
LED | XGPIOA[29] | 509 |
Interface da câmera
DuoS possui dois conectores de câmera CSI:
- J1 é um conector de 16 pinos com passo de 0,5 mm compatível com câmeras Duo e Duo256M e pode usar diretamente a câmera CAM-GC2083 .
- J2 é um conector de 15 pinos e passo de 1,0 mm compatível com a interface da câmera Raspberry Pi. Atualmente suporta a câmera OV5647 usada no Raspberry Pi.
Observe que o I2C usado pela interface J1 é I2C3 e o I2C usado pela interface J2 é I2C2. Verifique a configuração de multiplexação de pinos ao usá-lo.
FPC do conector J1
J1 | Descrição |
---|
1 | GND |
2 | MIPI0_DN0 |
3 | MIPI0_DP0 |
4 | GND |
5 | MIPI0_DN1 |
6 | MIPI0_DP1 |
7 | GND |
8 | MIPI0_CKN |
9 | MIPI0_CKP |
10 | GND |
11 | SENSOR_RSTN0 (1,8V) |
12 | SENSOR_CLK0 (1,8 V) |
13 | I2C3_SCL (1,8 V) |
14 | I2C3_SDA (1,8V) |
15 | |
16 | 3V3 |
FPC do conector J2
J2 | Descrição |
---|
1 | 3V3 |
2 | I2C2_SDA (3,3 V) |
3 | I2C2_SCL (3,3 V) |
4 | SENSOR_CLK1 (3,3V) |
5 | SENSOR_RSTN1 (3,3V) |
6 | GND |
7 | MIPI0_DP5 (CAM1_CP) |
8 | MIPI0_DN5 (CAM1_CN) |
9 | GND |
10 | MIPI0_DP4 (CAM1_DP1) |
11 | MIPI0_DN4 (CAM1_DN1) |
12 | GND |
13 | MIPI0_DP3 (CAM1_DP0) |
14 | MIPI0_DN3 (CAM1_DN0) |
15 | GND |
Pino POE | Descrição |
---|
1 | VB- |
2 | VB+ |
3 | VA- |
4 | VA+ |
Guia do usuário DuoS
RISC-V e ARM
O grande núcleo do DuoS pode optar por usar processador RISC-V ou ARM, que pode ser configurado através do switch na placa. Se você achar que o DuoS não consegue iniciar normalmente durante o uso, primeiro verifique se a chave é consistente com o firmware usado.
Se a porta serial de depuração estiver conectada, você pode ver na primeira linha do log de inicialização que começar com C
significa começar no núcleo RISC-V e começar com B
significa começar no núcleo ARM.
- RISC-V:
C.SCS/0/0.C.SCS/0/0.WD.URPL.USBI.USBW
- ARM:
B.SCS/0/0.WD.URPL.B.SCS/0/0.WD.URPL.USBI.USBW
Uso da Interface USB tipo A
As funções USB da interface DuoS USB Tipo A e da interface Tipo C são opcionais e não podem ser usadas ao mesmo tempo. O firmware padrão é configurado com a função de porta de rede USB (RNDIS) da porta Tipo C. Se você precisar mudar para a porta USB 2.0 HOST da porta tipo A para uso com unidades flash USB e outros dispositivos, será necessário executar o seguinte comando:
ln -sf /mnt/system/usb-host.sh /mnt/system/usb.sh
sync
Em seguida, execute o comando reboot
ou ligue novamente para que ele tenha efeito.
Por exemplo, depois de conectar uma unidade flash USB à porta USB A, você pode usar ls /dev/sd*
para verificar se o dispositivo foi detectado.
Monte-o no sistema para visualizar o conteúdo da unidade flash USB (use /dev/sda1 como exemplo):
mkdir /mnt/udisk
mount /dev/sda1 /mnt/udisk
Verifique se o conteúdo do diretório /mnt/udisk
está conforme o esperado:
Comando para desinstalar a unidade flash USB:
Quando quiser restaurar a função de rede USB (RNDIS) da porta Tipo C, execute:
rm /mnt/system/usb.sh
ln -sf /mnt/system/usb-rndis.sh /mnt/system/usb.sh
sync
Em seguida, execute o comando reboot
ou ligue novamente para que ele tenha efeito.
DICA
DuoS possui uma interface Ethernet integrada, portanto a porta de rede USB (RNDIS) da porta Tipo C pode ser usada sem mudar para a função USB 2.0 Host da porta A.
Console da serial UART
Conecte o cabo serial USB ao TTL conforme mostrado abaixo. Não conecte o fio vermelho.
Leite-V DouS | <---> | USB para TTL |
---|
GND (pino 6) | <---> | Fio preto |
TX (pino 8) | <---> | Fio branco |
RX (pino 10) | <---> | Fio verde |
A configuração serial padrão para Duo u-boot e console do kernel é:baudrate: 115200
data bit: 8
stop bit: 1
parity : none
flow control: none
Configuração Wi-Fi
Método 1
Edite o seguinte arquivo e substitua ssid
e psk
pela conta WIFI e senha a ser conectada:
/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1
network={
ssid="wifi_test"
psk="12345678"
key_mgmt=WPA-PSK
}
Em seguida, execute o seguinte comando:
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
Você pode se conectar ao WIFI. Após a conexão, você pode visualizar o endereço IP atribuído por meio do comando ifconfig
ou ip a
.
DICA
Se precisar se conectar automaticamente à rede na inicialização, você pode colocar este comando no arquivo /mnt/system/auto.sh
.
Gravação de firmware da versão eMMC
A versão DuoS eMMC não possui firmware gravado e precisa ser gravado em um PC através da interface USB.
DICA
Use a ferramenta de gravação USB no Windows para oferecer suporte ao eMMC. A versão do firmware é V1.1.0 ou versão mais recente .
Gravando no Windowsndows
Instalar driver
Baixe a ferramenta de instalação do driver USB: CviUsbDownloadInstallDriver.zip . Após baixar, descompacte e instale.
Baixe a ferramenta de gravação
Baixe a ferramenta de gravação de linha de comando no Windows CviBurn_v2.0_cli_windows.zip e descompacte-a após o download.
- Baixar firmware
Baixe a versão mais recente do firmware DuoS eMMC, atualmente milkv-duos-emmc-v1.1.0-2024-0410.zip , você pode criar uma nova pasta rom no diretório CviBurn_v2.0_cli_windows
da ferramenta de gravação e extrair o pacote compactado do firmware eMMC baixado para o diretório rom , a estrutura de diretórios da ferramenta de gravação é a seguinte:
└───CviBurn_v2.0_cli_windows
│ cv_dl_magic.bin
│ usb_dl.exe
└───rom
│ boot.emmc
│ fip.bin
│ partition_emmc.xml
│ rootfs_ext4.emmc
| ...
No terminal do Windows, execute o comando de gravação no diretório CviBurn_v2.0_cli_windows
:
.\usb_dl.exe -s linux -c cv181x -i .\rom
*Você também pode colocar o firmware em outros diretórios e especificar o diretório correspondente através do parâmetro -i no comando. *
Exibe mensagem aguardando conexão USB:
Use o cabo de dados Tipo C para conectar o DuoS e o PC (observe, se o DuoS tiver um cartão SD inserido, remova o cartão SD primeiro), o DuoS ligará automaticamente e entrará no modo de gravação, e o PC exibirá o status de gravação em tempo real.
Progresso da gravação:
[INFO] Waiting for USB device connection: ---
[INFO] found usb device vid=0x3346 pid=0x1000
[INFO] downloading file: .\rom\boot.emmc
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 3384664/213100824(1%)
[INFO] downloading file: .\rom\rootfs_ext4.emmc
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 20161944/213100824(9%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 36939224/213100824(17%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 53716504/213100824(25%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 70493784/213100824(33%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 87271064/213100824(40%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 104048344/213100824(48%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 120825624/213100824(56%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 137602904/213100824(64%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 154380184/213100824(72%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 171157464/213100824(80%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 187934744/213100824(88%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 204712024/213100824(96%)
[INFO] CVI_USB_PROGRAM
[INFO] updated size: 213100696/213100824(99%)
[INFO] USB download complete
Após a conclusão da gravação, o DuoS será reiniciado automaticamente. Após a inicialização, você verá o LED azul do DuoS piscando, indicando que o sistema iniciou normalmente e a gravação foi bem-sucedida.
Conexão via UART e Boot
C.SCS/0/0.WD.URPL.USBI.USBEF.BS/EMMC.EMI/25000000/12000000.PS.PE.BS.BE.J.
FSBL Jb2829:ged9cf2b4e:2024-08-01T14:02:49+08:00
st_on_reason=d0000
st_off_reason=800e0003
P2S/0x1000/0xc00a400.
P2E.
DPS/0xa400/0x2000.
DPE.
cv181x DDR init.
ddr_param[0]=0x78075562.
pkg_type=1
D2_4_1
DDR3-4G-BGA
Data rate=1866.
DDR BIST PASS
PLLS/OD.
C2S/0xc400/0x9fe00000/0x3600.
[R2TE:.
2M.S2/000x6f0a60]0P/r0ex 8s0y0s0t0e0m0 0i/n0ixt1 bd0o0n0e.
RT: [2.206932]CVIRTOS Build Date:Aug 1 2024 (Time :14:02:48)
RT: [2.212846]Post system init done
RT: [2.216161]create cvi task
RT: [2.218978][cvi_spinlock_init] succeess
RT: [2.222881]prvCmdQuRunTask run
ME.
L2/0x2aa00.
L2/0x414d3342/0xcafe6067/0x80200000/0x40600/0x40600
COMP/1.
DCP/0x80200020/0x1000000/0x81900020/0x40600/1.
DCP/0x87340/0.
Loader_2nd loaded.
Switch RTC mode to xtal32k
Jump to monitor at 0x80000000.
OPENSBI: next_addr=0x80200020 arg1=0x80080000
OpenSBI v0.9
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : Milk-V DuoS
Platform Features : mfdeleg
Platform HART Count : 1
Platform IPI Device : clint
Platform Timer Device : clint
Platform Console Device : uart8250
Platform HSM Device : ---
Platform SysReset Device : ---
Firmware Base : 0x80000000
Firmware Size : 132 KB
Runtime SBI Version : 0.3
Domain0 Name : root
Domain0 Boot HART : 0
Domain0 HARTs : 0*
Domain0 Region00 : 0x0000000074000000-0x000000007400ffff (I)
Domain0 Region01 : 0x0000000080000000-0x000000008003ffff ()
Domain0 Region02 : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address : 0x0000000080200020
Domain0 Next Arg1 : 0x0000000080080000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Boot HART ID : 0
Boot HART Domain : root
Boot HART ISA : rv64imafdcvsux
Boot HART Features : scounteren,mcounteren,time
Boot HART PMP Count : 16
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 38
Boot HART MHPM Count : 8
Boot HART MHPM Count : 8
Boot HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
U-Boot 2021.10 (Aug 01 2024 - 14:02:41 +0800) cvitek_cv181x
DRAM: 510 MiB
gd->relocaddr=0x9493d000. offset=0x1473d000
set_rtc_register_for_power
MMC: cv-emmc@4300000: 0, cv-sd@4310000: 1, wifi-sd@4320000: 2
Loading Environment from MMC... mmc0 : finished tuning, code:26
OK
In: serial
Out: serial
Err: serial
Net:
Warning: ethernet@4070000 (eth0) using random MAC address - 6a:8d:b3:e2:8c:49
eth0: ethernet@4070000
Hit any key to stop autoboot: 0
mmc0 : finished tuning, code:26
switch to partitions #0, OK
mmc0(part 0) is current device
MMC read: dev # 0, block # 16384, count 4096 ... 4096 blocks read: OK in 24 ms (83.3 MiB/s)
start jpeg dec task!, bs_addr 0000000084080000, yuv_addr 0000000094c30000, size 524288
JPU_DecGetInitialInfo = 219, pDecInfo->format 0
framebufStrideY = 512, framebufStrideC = 256
[DBG] JPU_DecStartOneFrame = 853, packedFormat = 0
[DBG] JPU_DecStartOneFrame = 855, strideY = 512, strideC = 256
[DBG] copy_to_dest_addr = 89, nY = 144, picHeight = 144
[DBG] copy_to_dest_addr = 90, strideY = 512, lumaSize = 0x12000
[DBG] copy_to_dest_addr = 91, strideC = 256, chromaSize = 0x4800
[DBG] copy_to_dest_addr = 95, size = 0x1B000, lumaSize = 0x12000, chromaSize = 0x4800
[DBG] copy_to_dest_addr = 97, y, pRef = 0000000094c30000, pOrg = 0000000094128000
[DBG] copy_to_dest_addr = 103, u, pRef = 0000000094c42000, pOrg = 000000009413a000
[DBG] copy_to_dest_addr = 109, v, pRef = 0000000094c47000, pOrg = 000000009413e800
## Error: "norboot" not defined
## Error: "nandboot" not defined
mmc0 : finished tuning, code:26
switch to partitions #0, OK
mmc0(part 0) is current device
MMC read: dev # 0, block # 0, count 16384 ... 16384 blocks read: OK in 94 ms (85.1 MiB/s)
## Loading kernel from FIT Image at 81800000 ...
Using 'config-cv1813h_milkv_duos_emmc' configuration
Trying 'kernel-1' kernel subimage
Description: cvitek kernel
Type: Kernel Image
Compression: lzma compressed
Data Start: 0x818000d8
Data Size: 3077712 Bytes = 2.9 MiB
Architecture: RISC-V
OS: Linux
Load Address: 0x80200000
Entry Point: 0x80200000
Hash algo: crc32
Hash value: 6d2504d9
Verifying Hash Integrity ... crc32+ OK
## Loading fdt from FIT Image at 81800000 ...
Using 'config-cv1813h_milkv_duos_emmc' configuration
Trying 'fdt-cv1813h_milkv_duos_emmc' fdt subimage
Description: cvitek device tree - cv1813h_milkv_duos_emmc
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x81aef840
Data Size: 20624 Bytes = 20.1 KiB
Architecture: RISC-V
Hash algo: sha256
Hash value: c366ac81c0b5dce3626f2ee9714c384acd5910a10910d0a241ad07d57166219a
Verifying Hash Integrity ... sha256+ OK
Booting using the fdt blob at 0x81aef840
Uncompressing Kernel Image
Decompressing 6942720 bytes used 923ms
Loading Device Tree to 0000000093fed000, end 0000000093ff508f ... OK
Starting kernel ...
[ 0.000000] Linux version 5.10.4-tag- (root@06883d61fb65) (riscv64-unknown-linux-musl-gcc (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 PREEMPT Thu Aug 1 14:02:56 CST 2024
[ 0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[ 0.000000] printk: bootconsole [sbi0] enabled
[ 0.000000] efi: UEFI not found.
[ 0.000000] Ion: Ion memory setup at 0x0000000095400000 size 170 MiB
[ 0.000000] OF: reserved mem: initialized node ion, compatible id ion-region
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000080000000-0x000000009fdfffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000080000000-0x000000009fdfffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000009fdfffff]
[ 0.000000] On node 0 totalpages: 130560
[ 0.000000] DMA32 zone: 1785 pages used for memmap
[ 0.000000] DMA32 zone: 0 pages reserved
[ 0.000000] DMA32 zone: 130560 pages, LIFO batch:31
[ 0.000000] SBI specification v0.3 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x9
[ 0.000000] SBI v0.2 TIME extension detected
[ 0.000000] SBI v0.2 IPI extension detected
[ 0.000000] SBI v0.2 RFENCE extension detected
[ 0.000000] riscv: ISA extensions acdfimsuv
[ 0.000000] riscv: ELF capabilities acdfimv
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 128775
[ 0.000000] Kernel command line: root=/dev/mmcblk0p4 rootwait rw blkdevparts=mmcblk0:8192K(BOOT),2048K(MISC),128K(ENV),786560K(ROOTFS);mmcblk0boot0:1M(fip),1M(fip_bak); console=ttyS0,115200 earlycon=sbi riscv.fwsz=0x80000 loglevel=9
[ 0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.000000] Sorting __ex_table...
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 324588K/522240K available (4145K kernel code, 534K rwdata, 1889K rodata, 148K init, 209K bss, 197652K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped
[ 0.000000] plic: interrupt-controller@70000000: mapped 101 interrupts with 1 handlers for 2 contexts.
[ 0.000000] random: get_random_bytes called from start_kernel+0x2dc/0x418 with crng_init=0
[ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[ 0.000007] sched_clock: 64 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[ 0.008405] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=100000)
[ 0.019125] pid_max: default: 4096 minimum: 301
[ 0.024002] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.031508] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.040962] ASID allocator initialised with 65536 entries
[ 0.046642] rcu: Hierarchical SRCU implementation.
[ 0.052033] EFI services will not be available.
[ 0.057101] devtmpfs: initialized
[ 0.065708] early_time_log: do_initcalls: 6404612us
[ 0.071337] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.081379] futex hash table entries: 16 (order: -4, 384 bytes, linear)
[ 0.088333] pinctrl core: initialized pinctrl subsystem
[ 0.094148] NET: Registered protocol family 16
[ 0.099122] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[ 0.106425] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.115139] thermal_sys: Registered thermal governor 'step_wise'
[ 0.128651] OF: /gpio@03020000/gpio-controller@0: could not find phandle
[ 0.141842] OF: /gpio@03021000/gpio-controller@1: could not find phandle
[ 0.148833] OF: /gpio@03022000/gpio-controller@2: could not find phandle
[ 0.155819] OF: /gpio@03023000/gpio-controller@3: could not find phandle
[ 0.162807] OF: /gpio@05021000/gpio-controller@4: could not find phandle
[ 0.171536] clk reset: nr_reset=64 resource_size=8
[ 0.177055] get audio clk=24576000
[ 0.180583] cvitek-i2s-subsys 4108000.i2s_subsys: Set clk_sdma_aud0~3 to 24576000
[ 0.202013] dw_dmac 4330000.dma: CVITEK DMA Controller, 8 channels, probe done!
[ 0.210390] SCSI subsystem initialized
[ 0.214598] usbcore: registered new interface driver usbfs
[ 0.220374] usbcore: registered new interface driver hub
[ 0.225906] usbcore: registered new device driver usb
[ 0.233988] Ion: ion_parse_dt_heap_common: id 0 type 2 name carveout align 1000
[ 0.241959] Ion: rmem_ion_device_init: heap carveout base 0x0000000095400000 size 0x000000000aa00000 dev (____ptrval____)
[ 0.253231] ion_carveout_heap_create, size=0xaa00000
[ 0.258528] cvi_get_rtos_ion_size, rtos ion_size get:0x1600000
[ 0.264511] ion_carveout_heap_create, size(exclusion of rtos_ion_size)=0x9400000
[ 0.857110] platform carveout: [ion] add heap id 0, type 2, base 0x95400000, size 0xaa00000
[ 0.866041] Advanced Linux Sound Architecture Driver Initialized.
[ 0.872860] Bluetooth: Core ver 2.22
[ 0.876574] NET: Registered protocol family 31
[ 0.881164] Bluetooth: HCI device and connection manager initialized
[ 0.887798] Bluetooth: HCI socket layer initialized
[ 0.892905] Bluetooth: L2CAP socket layer initialized
[ 0.898214] Bluetooth: SCO socket layer initialized
[ 0.903873] clocksource: Switched to clocksource riscv_clocksource
[ 0.912266] NET: Registered protocol family 2
[ 0.917634] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.926318] TCP established hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 0.934336] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 0.941776] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.948498] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.955268] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.962679] NET: Registered protocol family 1
[ 0.967705] RPC: Registered named UNIX socket transport module.
[ 0.973829] RPC: Registered udp transport module.
[ 0.978701] RPC: Registered tcp transport module.
[ 0.983625] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.992521] Initialise system trusted keyrings
[ 0.997331] workingset: timestamp_bits=62 max_order=17 bucket_order=0
[ 1.009535] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 1.072205] Key type asymmetric registered
[ 1.076458] Asymmetric key parser 'x509' registered
[ 1.086936] Serial: 8250/16550 driver, 5 ports, IRQ sharing disabled
[ 1.095097] printk: console [ttyS0] disabled
[ 1.099594] 4140000.serial: ttyS0 at MMIO 0x4140000 (irq = 13, base_baud = 1562500) is a 16550A
[ 1.108711] printk: console [ttyS0] enabled
[ 1.108711] printk: console [ttyS0] enabled
[ 1.117309] printk: bootconsole [sbi0] disabled
[ 1.117309] printk: bootconsole [sbi0] disabled
[ 1.127403] 4150000.serial: ttyS1 at MMIO 0x4150000 (irq = 14, base_baud = 1562500) is a 16550A
[ 1.137158] 4160000.serial: ttyS2 at MMIO 0x4160000 (irq = 15, base_baud = 1562500) is a 16550A
[ 1.146906] 4170000.serial: ttyS3 at MMIO 0x4170000 (irq = 16, base_baud = 1562500) is a 16550A
[ 1.156656] 41c0000.serial: ttyS4 at MMIO 0x41c0000 (irq = 17, base_baud = 1562500) is a 16550A
[ 1.168999] libphy: Fixed MDIO Bus: probed
[ 1.173966] bm-dwmac 4070000.ethernet: IRQ eth_wake_irq not found
[ 1.180320] bm-dwmac 4070000.ethernet: IRQ eth_lpi not found
[ 1.186309] bm-dwmac 4070000.ethernet: Hash table entries set to unexpected value 0
[ 1.194367] bm-dwmac 4070000.ethernet: no reset control found
[ 1.200548] bm-dwmac 4070000.ethernet: User ID: 0x10, Synopsys ID: 0x37
[ 1.207459] bm-dwmac 4070000.ethernet: DWMAC1000
[ 1.212358] bm-dwmac 4070000.ethernet: DMA HW capability register supported
[ 1.219583] bm-dwmac 4070000.ethernet: RX Checksum Offload Engine supported
[ 1.226806] bm-dwmac 4070000.ethernet: COE Type 2
[ 1.231696] bm-dwmac 4070000.ethernet: TX Checksum insertion supported
[ 1.238470] bm-dwmac 4070000.ethernet: Normal descriptors
[ 1.244080] bm-dwmac 4070000.ethernet: Ring mode enabled
[ 1.249601] bm-dwmac 4070000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[ 1.257365] bm-dwmac 4070000.ethernet: device MAC address 6a:8d:b3:e2:8c:49
[ 1.288508] libphy: stmmac: probed
[ 1.292242] CVITEK CV182XA stmmac-0:00: attached PHY driver [CVITEK CV182XA] (mii_bus:phy_addr=stmmac-0:00, irq=POLL)
[ 1.303318] CVITEK CV182XA stmmac-0:01: attached PHY driver [CVITEK CV182XA] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[ 1.315407] bm-dwmac 4070000.ethernet: Cannot get clk_500m_eth!
[ 1.321648] bm-dwmac 4070000.ethernet: Cannot get gate_clk_axi4!
[ 1.328194] usbcore: registered new interface driver asix
[ 1.333894] usbcore: registered new interface driver ax88179_178a
[ 1.340296] usbcore: registered new interface driver cdc_ether
[ 1.346430] usbcore: registered new interface driver smsc95xx
[ 1.352458] usbcore: registered new interface driver net1080
[ 1.358394] usbcore: registered new interface driver cdc_subset
[ 1.364605] usbcore: registered new interface driver zaurus
[ 1.370487] usbcore: registered new interface driver cdc_ncm
[ 1.377144] dwc2 4340000.usb: axi clk installed
[ 1.381884] dwc2 4340000.usb: apb clk installed
[ 1.386603] dwc2 4340000.usb: 125m clk installed
[ 1.391411] dwc2 4340000.usb: 33k clk installed
[ 1.396128] dwc2 4340000.usb: 12m clk installed
[ 1.400920] dwc2 4340000.usb: EPs: 8, dedicated fifos, 3072 entries in SPRAM
[ 1.408673] dwc2 4340000.usb: DWC OTG Controller
[ 1.413540] dwc2 4340000.usb: new USB bus registered, assigned bus number 1
[ 1.420805] dwc2 4340000.usb: irq 39, io mem 0x04340000
[ 1.427050] hub 1-0:1.0: USB hub found
[ 1.431058] hub 1-0:1.0: 1 port detected
[ 1.436562] usbcore: registered new interface driver usb-storage
[ 1.443154] i2c /dev entries driver
[ 1.448524] Bluetooth: HCI UART driver ver 2.3
[ 1.453175] Bluetooth: HCI UART protocol H4 registered
[ 1.458958] sdhci: Secure Digital Host Controller Interface driver
[ 1.465387] sdhci: Copyright(c) Pierre Ossman
[ 1.469917] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.476041] cvi:sdhci_cvi_probe
[ 1.512660] mmc0: SDHCI controller on 4300000.cv-emmc [4300000.cv-emmc] using ADMA 64-bit
[ 1.521315] cvi:sdhci_cvi_probe
[ 1.556333] mmc1: SDHCI controller on 4310000.cv-sd [4310000.cv-sd] using ADMA 64-bit
[ 1.571893] cvi_proc_init cvi_host 0x(____ptrval____)
[ 1.584029] cvi:sdhci_cvi_probe
[ 1.623934] mmc2: SDHCI controller on 4320000.wifi-sd [4320000.wifi-sd] using ADMA 64-bit
[ 1.634325] random: fast init done
[ 1.638404] usbcore: registered new interface driver usbhid
[ 1.644313] usbhid: USB HID core driver
[ 1.656151] usbcore: registered new interface driver snd-usb-audio
[ 1.667625] cvitek-i2s 4100000.i2s: cvi_i2s_probe
[ 1.677427] cvitek-i2s 4130000.i2s: cvi_i2s_probe
[ 1.688493] cviteka-adc sound_adc: cviteka_adc_probe, dev name=sound_adc
[ 1.699265] cviteka-adc sound_adc: cviteka_adc_probe start devm_snd_soc_register_card
[ 1.712574] cvitekaadc 300a100.adc: cvitekaadc_probe
[ 1.722852] cviteka-dac sound_dac: cviteka_dac_probe, dev name=sound_dac
[ 1.735385] cvitekadac 300a000.dac: cvitekadac_probe
[ 1.745549] cvitekadac_probe gpio_is_valid mute_pin_l
[ 1.750891] cvitekadac_probe gpio_is_valid mute_pin_r
[ 1.761694] NET: Registered protocol family 17
[ 1.771037] Bluetooth: RFCOMM TTY layer initialized
[ 1.779735] Bluetooth: RFCOMM socket layer initialized
[ 1.785197] Bluetooth: RFCOMM ver 1.11
[ 1.789234] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1.794941] Bluetooth: BNEP filters: protocol multicast
[ 1.803918] Bluetooth: BNEP socket layer initialized
[ 1.810284] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 1.816587] Bluetooth: HIDP socket layer initialized
[ 1.826671] Loading compiled-in X.509 certificates
[ 1.871045] cviteka-adc sound_adc: cviteka_adc_probe, dev name=sound_adc
[ 1.878102] cviteka-adc sound_adc: cviteka_adc_probe start devm_snd_soc_register_card
[ 1.900269] cviteka-dac sound_dac: cviteka_dac_probe, dev name=sound_dac
[ 1.924323] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1.947388] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 1.954662] cfg80211: failed to load regulatory.db
[ 1.964723] ALSA device list:
[ 1.971451] dw-apb-uart 4140000.serial: forbid DMA for kernel console
[ 1.984677] Waiting for root device /dev/mmcblk0p4...
[ 2.193200] mmc0: new HS200 MMC card at address 0001
[ 2.199071] mmcblk0: mmc0:0001 8GTF4R 7.28 GiB
[ 2.204234] mmcblk0boot0: mmc0:0001 8GTF4R partition 1 4.00 MiB
[ 2.210731] mmcblk0boot1: mmc0:0001 8GTF4R partition 2 4.00 MiB
[ 2.217093] mmcblk0rpmb: mmc0:0001 8GTF4R partition 3 512 KiB, chardev (250:0)
[ 2.224983] mmcblk0: p1(BOOT) p2(MISC) p3(ENV) p4(ROOTFS)
[ 2.302360] EXT4-fs (mmcblk0p4): recovery complete
[ 2.307749] EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: (null)
[ 2.316210] VFS: Mounted root (ext4 filesystem) on device 179:4.
[ 2.323029] devtmpfs: mounted
[ 2.326275] Freeing unused kernel memory: 148K
[ 2.330905] Kernel memory protection not selected by kernel config.
[ 2.337422] Run /sbin/init as init process
[ 2.341686] with arguments:
[ 2.344785] /sbin/init
[ 2.347587] with environment:
[ 2.350861] HOME=/
[ 2.353331] TERM=linux
[ 2.356162] early_time_log: run_init_process: 8695068us
[ 2.380009] EXT4-fs (mmcblk0p4): re-mounted. Opts: (null)
mount: mounting /dev/mmcblk0p1 on /boot failed: Invalid argument
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Initializing random number generator: OK
Saving random seed: [ 2.613520] random: dd: uninitialized urandom read (512 bytes read)
OK
Starting system message bus: [ 2.654708] random: dbus-uuidgen: uninitialized urandom read (12 bytes read)
[ 2.662216] random: dbus-uuidgen: uninitialized urandom read (8 bytes read)
done
Starting bluetoothd: OK
Starting network: OK
Starting dhcpcd...
dhcpcd-9.4.0 starting
DUID 00:01:00:01:c7:92:bc:82:fe:4e:27:c0:e5:47
dhcp_vendor: Invalid argument
forked to background, child pid [ 2.908613] bm-dwmac 4070000.ethernet eth0: PHY [stmmac-0:00] driver [CVITEK CV182XA] (irq=POLL)
160
Bad system call
Starting ntpd: [ 2.931953] dwmac1000: Master AXI performs any burst length
[ 2.939191] bm-dwmac 4070000.ethernet eth0: No Safety Features support found
[ 2.951987] bm-dwmac 4070000.ethernet eth0: IEEE 1588-2002 Timestamp supported
[ 2.961131] bm-dwmac 4070000.ethernet eth0: configuring for phy/rmii link mode
[ 5.025155] bm-dwmac 4070000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 7.072190] bm-dwmac 4070000.ethernet eth0: Link is Down
OK
Starting dropbear sshd: OK
Starting dnsmasq: [ 8.049113] urandom_read: 4 callbacks suppressed
[ 8.049123] random: dnsmasq: uninitialized urandom read (128 bytes read)
[ 8.061386] random: dnsmasq: uninitialized urandom read (48 bytes read)
OK
init mpp system...
[ 8.088826] cv181x_sys: bad vermagic: kernel tainted.
[ 8.094120] Disabling lock debugging due to kernel taint
[ 8.100065] cv181x_sys: loading out-of-tree module taints kernel.
[ 8.115615] res-reg: start: 0xa0c8000, end: 0xa0c801f, virt-addr(ffffffd00405f000).
[ 8.124315] CVITEK CHIP ID = 21
[ 8.134018] cif a0c2000.cif: cam0 clk installed
[ 8.138871] cif a0c2000.cif: cam1 clk installed
[ 8.144060] cif a0c2000.cif: vip_sys_2 clk installed
[ 8.149471] cif a0c2000.cif: clk_mipimpll clk installed (____ptrval____)
[ 8.156662] cif a0c2000.cif: clk_disppll clk installed (____ptrval____)
[ 8.163763] cif a0c2000.cif: clk_fpll clk installed (____ptrval____)
[ 8.170590] cif a0c2000.cif: (0) res-reg: start: 0xa0c2000, end: 0xa0c3fff.
[ 8.178025] cif a0c2000.cif: virt-addr((____ptrval____))
[ 8.183860] cif a0c2000.cif: (1) res-reg: start: 0xa0d0000, end: 0xa0d0fff.
[ 8.191326] cif a0c2000.cif: virt-addr((____ptrval____))
[ 8.197144] cif a0c2000.cif: (2) res-reg: start: 0xa0c4000, end: 0xa0c5fff.
[ 8.204579] cif a0c2000.cif: virt-addr((____ptrval____))
[ 8.210412] cif a0c2000.cif: (3) res-reg: start: 0xa0c6000, end: 0xa0c7fff.
[ 8.217845] cif a0c2000.cif: virt-addr((____ptrval____))
[ 8.223688] cif a0c2000.cif: (4) res-reg: start: 0x3001c30, end: 0x3001c5f.
[ 8.231122] cif a0c2000.cif: virt-addr((____ptrval____))
[ 8.236941] cif a0c2000.cif: no pad_ctrl for cif
[ 8.242015] cif a0c2000.cif: request irq-28 as cif-irq0
[ 8.247720] cif a0c2000.cif: request irq-29 as cif-irq1
[ 8.253405] cif a0c2000.cif: rst_pin = 482, pol = 1
[ 8.262226] snsr_i2c snsr_i2c: i2c:-------hook 1
[ 8.267193] snsr_i2c snsr_i2c: i2c:-------hook 2
[ 8.272497] snsr_i2c snsr_i2c: i2c:-------hook 3
[ 8.277642] snsr_i2c snsr_i2c: i2c:-------hook 4
[ 8.299722] vi_core_probe:203(): res-reg: start: 0xa000000, end: 0xa07ffff, virt-addr(ffffffd004200000).
[ 8.309640] vi_core_probe:216(): irq(30) for isp get from platform driver.
[ 8.317569] vi_tuning_buf_setup:253(): tuning fe_addr[0]=0x8215f490, be_addr[0]=0x82157290, post_addr[0]=0x82140000
[ 8.328701] vi_tuning_buf_setup:253(): tuning fe_addr[1]=0x8217f490, be_addr[1]=0x82177290, post_addr[1]=0x82160000
[ 8.339797] vi_tuning_buf_setup:253(): tuning fe_addr[2]=0x8219f490, be_addr[2]=0x82197290, post_addr[2]=0x82180000
[ 8.350850] sync_task_init:177(): sync_task_init vi_pipe 0
[ 8.356760] sync_task_init:177(): sync_task_init vi_pipe 1
[ 8.362662] sync_task_init:177(): sync_task_init vi_pipe 2
[ 8.368953] vi_core_probe:252(): isp registered as cvi-vi
[ 8.396884] cvi_dwa_probe:487(): done with rc(0).
[ 8.414839] cvi-mipi-tx mipi_tx: IRQ index 0 not found
[ 8.420337] cvi-mipi-tx mipi_tx: vbat irq(-6)
[ 8.425251] cvi-mipi-tx mipi_tx: reset gpio pin(354) active(0)
[ 8.431633] cvi-mipi-tx mipi_tx: power ctrl gpio pin(353) active(1)
[ 8.438374] cvi-mipi-tx mipi_tx: pwm gpio pin(352) active(1)
[ 8.454325] cv181x-cooling cv181x_cooling: elems of dev-freqs=6
[ 8.460619] cv181x-cooling cv181x_cooling: dev_freqs[0]: 850000000 500000000
[ 8.468336] cv181x-cooling cv181x_cooling: dev_freqs[1]: 425000000 375000000
[ 8.475979] cv181x-cooling cv181x_cooling: dev_freqs[2]: 425000000 300000000
[ 8.483611] cv181x-cooling cv181x_cooling: Cooling device registered: cv181x_cooling
[ 8.506216] jpu ctrl reg pa = 0xb030000, va = (____ptrval____), size = 256
[ 8.513813] end jpu_init result = 0x0
[ 8.559089] cvi_vc_drv_init result = 0x0
[ 8.603183] sh (212): drop_caches: 3
Starting app...
[root@milkv-duo]~# [ 10.227932] aicbsp: sdio_err:<aicwf_sdio_bus_pwrctl,1432>: bus down
[ 10.863583] ieee80211 phy0:
[ 10.863583] *******************************************************
[ 10.863583] ** CAUTION: USING PERMISSIVE CUSTOM REGULATORY RULES **
[ 10.863583] *******************************************************
[root@milkv-duo]~#
Python
ping (cabo Ethernet)
Package manager
O OpenSBI em si não inclui um gerenciador de pacotes porque é um componente de firmware projetado para ser executado no nível mais baixo do sistema, normalmente no modo de máquina (modo M) em plataformas RISC-V. O OpenSBI não é um sistema operacional ou uma distribuição de software; em vez disso, ele fornece serviços de tempo de execução para o sistema operacional ou hipervisor, como inicializar o kernel, lidar com interrupções e gerenciar energia.
Compilando Blynk e transferindo
#include <stdio.h>
#include <unistd.h>
#include <wiringx.h>
int main() {
// Duo/Duo256M: LED = 25
// Duo/DuoS: LED = 0
int DUO_LED = 0;
// Duo: milkv_duo
// Duo256M: milkv_duo256m
// DuoS: milkv_duos
if(wiringXSetup("milkv_duos", NULL) == -1) {
wiringXGC();
return 1;
}
if(wiringXValidGPIO(DUO_LED) != 0) {
printf("Invalid GPIO %d\n", DUO_LED);
}
pinMode(DUO_LED, PINMODE_OUTPUT);
while(1) {
printf("Duo LED GPIO (wiringX) %d: High\n", DUO_LED);
digitalWrite(DUO_LED, HIGH);
sleep(1);
printf("Duo LED GPIO (wiringX) %d: Low\n", DUO_LED);
digitalWrite(DUO_LED, LOW);
sleep(1);
}
return 0;
}
ubuntu@DESKTOP-UHGFA4M:~/duo-buildroot-sdk$ ls -l
total 128
-rw-r--r-- 1 ubuntu ubuntu 19477 May 30 19:50 README-ja.md
-rwxr-xr-x 1 ubuntu ubuntu 17002 May 30 19:50 README-zh.md
-rw-r--r-- 1 ubuntu ubuntu 17212 May 30 19:50 README.md
drwxr-xr-x 8 ubuntu ubuntu 4096 Aug 23 11:00 build
-rwxr-xr-x 1 ubuntu ubuntu 6108 May 30 19:50 build.sh
drwxr-xr-x 16 ubuntu ubuntu 4096 May 30 20:24 buildroot-2021.05
drwxr-xr-x 11 ubuntu ubuntu 4096 May 30 19:50 device
drwxr-xr-x 8 ubuntu ubuntu 4096 May 30 20:14 freertos
drwxr-xr-x 8 ubuntu ubuntu 4096 May 30 20:14 fsbl
drwxr-xr-x 3 ubuntu ubuntu 4096 Mar 7 2023 host-tools
drwxr-xr-x 4 ubuntu ubuntu 4096 Aug 23 11:00 install
drwxr-xr-x 4 ubuntu ubuntu 4096 May 30 19:50 isp_tuning
drwxr-xr-x 26 ubuntu ubuntu 4096 Aug 23 11:00 linux_5.10
drwxr-xr-x 3 ubuntu ubuntu 4096 May 30 19:51 middleware
drwxr-xr-x 9 ubuntu ubuntu 4096 Aug 23 11:01 opensbi
drwxr-xr-x 3 ubuntu ubuntu 4096 May 30 19:51 osdrv
drwxr-xr-x 2 ubuntu ubuntu 4096 Aug 23 12:07 out
drwxr-xr-x 8 ubuntu ubuntu 4096 May 30 20:23 ramdisk
drwxr-xr-x 24 ubuntu ubuntu 4096 May 30 20:13 u-boot-2021.10
ubuntu@DESKTOP-UHGFA4M:~/duo-buildroot-sdk$ cd ..
ubuntu@DESKTOP-UHGFA4M:~$ dir
OpenPLC_v3 core_sdk_16000.1000.00.88.15.03.tar.zip:Zone.Identifier lora-modem-abz
core_sdk_16000.1000.00.88.15.03.tar duo-buildroot-sdk luckfox-pico
core_sdk_16000.1000.00.88.15.03.tar.zip duo-examples wiringX
ubuntu@DESKTOP-UHGFA4M:~/duo-examples$ source envsetup.sh
SDK_DIR: /home/ubuntu/duo-examples
SDK environment is ready
ubuntu@DESKTOP-UHGFA4M:~/duo-examples$ cd blink/
ubuntu@DESKTOP-UHGFA4M:~/duo-examples/blink$ make
make: 'blink' is up to date.
ubuntu@DESKTOP-UHGFA4M:~/duo-examples/blink$ make clean
ubuntu@DESKTOP-UHGFA4M:~/duo-examples/blink$ make
/home/ubuntu/duo-examples/duo-sdk/riscv64-linux-musl-x86_64/bin/riscv64-unknown-linux-musl-gcc -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -I/home/ubuntu/duo-examples/duo-sdk/rootfs/usr/include -o blink.o -c blink.c
/home/ubuntu/duo-examples/duo-sdk/riscv64-linux-musl-x86_64/bin/riscv64-unknown-linux-musl-gcc -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -I/home/ubuntu/duo-examples/duo-sdk/rootfs/usr/include -o blink blink.o -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -L/home/ubuntu/duo-examples/duo-sdk/rootfs/lib -L/home/ubuntu/duo-examples/duo-sdk/rootfs/usr/lib -lwiringx
ubuntu@DESKTOP-UHGFA4M:~/duo-examples/blink$ ls -l
total 24
-rw-r--r-- 1 ubuntu ubuntu 570 May 30 21:56 Makefile
-rwxr-xr-x 1 ubuntu ubuntu 10128 Sep 22 08:15 blink
-rw-r--r-- 1 ubuntu ubuntu 736 May 30 21:56 blink.c
-rw-r--r-- 1 ubuntu ubuntu 3280 Sep 22 08:15 blink.o
Podes transferir via WINSCP ou SCP (linha de comando)
SCP
scp blink root@192.168.42.1:/root/
ubuntu@DESKTOP-UHGFA4M:~/duo-examples/blink$ scp blink root@192.168.42.1:/root/
The authenticity of host '192.168.42.1 (192.168.42.1)' can't be established.
ED25519 key fingerprint is SHA256:8jPnxJi+dBl2BCFu8vm3aeeK8ZyWGs1qiXDh+U0WFug.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.42.1' (ED25519) to the list of known hosts.
root@192.168.42.1's password:
blink 100% 10KB 498.7KB/s 00:00
ubuntu@DESKTOP-UHGFA4M:~/duo-examples/blink$
Executando
LED no Pino 26 (canto inferior direito)
Questões: suporte@smartcore.com.br
Nenhum comentário:
Postar um comentário