domingo, 22 de setembro de 2024

MILK-V DUO S (SG2000) - Instalação e BLINK LED - Via RNDIS

  

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

GRUPOENDEREÇOPORTACHIPNUMNOMEINICIO
gpio0gpio@03020000portagpiochip0480-511XGPIOA480 -XGPIOA[0]
gpio1gpio@03021000portbgpiochip1448-479XGPIOB448 -XGPIOB[0]
gpio2gpio@03022000portcgpiochip2416-447XGPIOC416 -XGPIOC[0]
gpio3gpio@03023000portdgpiochip3384-415
gpio4gpio@05021000portegpiochip4352-383PWR_GPIO352 -PWR_GPIO[0]


HEADER J3
J3

GPIO Header J3usa 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.


HEADER J4


GPIO Header J4 usa níveis lógicos de 1,8V.


LED azul


NOMESG2000NUMERO
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

J1Descrição
1GND
2MIPI0_DN0
3MIPI0_DP0
4GND
5MIPI0_DN1
6MIPI0_DP1
7GND
8MIPI0_CKN
9MIPI0_CKP
10GND
11SENSOR_RSTN0 (1,8V)
12SENSOR_CLK0 (1,8 V)
13I2C3_SCL (1,8 V)
14I2C3_SDA (1,8V)
15
163V3


FPC do conector J2

J2Descrição
13V3
2I2C2_SDA (3,3 V)
3I2C2_SCL (3,3 V)
4SENSOR_CLK1 (3,3V)
5SENSOR_RSTN1 (3,3V)
6GND
7MIPI0_DP5 (CAM1_CP)
8MIPI0_DN5 (CAM1_CN)
9GND
10MIPI0_DP4 (CAM1_DP1)
11MIPI0_DN4 (CAM1_DN1)
12GND
13MIPI0_DP3 (CAM1_DP0)
14MIPI0_DN3 (CAM1_DN0)
15GND


CONECTOR POE

Imagens de documentos
Pino POEDescrição
1VB-
2VB+
3VA-
4VA+


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 significa começar no núcleo RISC-V e começar com 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:

ls /mnt/udisk

Comando para desinstalar a unidade flash USB:

umount /mnt/udisk

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 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

  1. Instalar driver

    Baixe a ferramenta de instalação do driver USB: CviUsbDownloadInstallDriver.zip . Após baixar, descompacte e instale.

  2. 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.

  3. 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
                           Imagens de documentos

LED no Pino 26 (canto inferior direito)


Questões: suporte@smartcore.com.br

A SMARTCORE FORNECE CHIPS E MÓDULOS PARA IOT, COMUNICAÇÃO WIRELESS, BIOMETRIA, CONECTIVIDADE, RASTREAMENTO E AUTOMAÇÃO. NOSSO PORTFÓLIO INCLUI MODEM 2G/3G/4G/NB-IOT, SATELITAL, MÓDULOS WIFI, BLUETOOTH, GPS, SIGFOX, LORA, LEITOR DE CARTÃO, LEITOR QR CCODE, MECANISMO DE IMPRESSÃO, MINI-BOARD PC, ANTENA, PIGTAIL, BATERIA, REPETIDOR GPS E SENSORES. 

Nenhum comentário:

Postar um comentário