情景: 酒店的公共网络
目标: 不想被发现

tigger 发布的帖子
-
回复: 一个变态的项目,要用一个几毛钱的单片机驱动64个LED,64个按键输入。
https://www.amobbs.com/thread-4445280-1-1.html
uchar OUT_165() { uchar i,aa,DATA_BUF; for(i=0;i<8;i++) { CLK2=1; aa<<=1; //这里要先移位,否则会出现最低位被补0而最高位被移出的现象 delay(10); CLK2=0; //上升沿脉冲 if(OUT_data==1) aa|=0x01; DATA_BUF=aa; //将串行移出的8位数据存在DATA_data中 } return(DATA_BUF); } while(1) { STR=1; for(j=0;j<4;j++) { send_4094(buffer[j]); } STR=0; delay(7); //此处延时不可丢 S_L=1; //置入并行数据 delay(40); S_L=0; //启动串行移位,准备好 delay(5); for(j=0;j<4;j++) { b[j]=OUT_165(); } }
-
回复: 一个变态的项目,要用一个几毛钱的单片机驱动64个LED,64个按键输入。
http://www.mcublog.cn/software/2020_01/74hc165-jilian/
uint8_t ReadByte_165(void) { u8 i,dat=0; CLK_H; SL_H; for(i=0;i<8;i++) { dat=dat<<1; if(DAT==1) dat=dat+1; CLK_L; Delay_Us(1); CLK_H; } sw_buf = dat; for(i=0;i<8;i++) { dat=dat<<1; if(DAT==1) dat=dat+1; CLK_L; Delay_Us(1); CLK_H; } in_buf = dat; CLK_L; SL_L; return dat; }
其中,CLK是CP,SL是PL,DAT是Q7。
-
回复: D1怎么使用JTAG?
@elliott 在 D1怎么使用JTAG? 中说:
@damon 在 D1怎么使用JTAG? 中说:
disable dts文件中的sdc0配置
请问下,“disable dts文件中的sdc0配置”具体应该注释哪些呢?
通过 dtb 找:
$ find . -name "*.dtb" ./out/d1-nezha/image/sunxi.dtb ./lichee/linux-5.4/arch/riscv/boot/dts/sunxi/board.dtb
应该是 改 这个文件: ./lichee/linux-5.4/arch/riscv/boot/dts/sunxi/board.dts
-
回复: 想请问怎么在d1开发板上通过摄像头实时输出图像到显示器上
用韦老师的buildroot D1 SDK 编译 TF卡固件,加入mjpeg-streamer包,和uvc摄像头驱动, 电脑浏览器访问摄像头
https://whycan.com/t_6894.html本站貌似没有文件上传功能,所以固件在whycan上面下载。
-
回复: 想请问怎么在d1开发板上通过摄像头实时输出图像到显示器上
花了半小时终于把支持uvc摄像头的 Linux配置文件整出来了:
CONFIG_CC_VERSION_TEXT="riscv64-unknown-linux-gnu-gcc (C-SKY RISCV Tools V1.8.4 B20200702) 8.1.0" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=80100 CONFIG_CLANG_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_HAS_ASM_GOTO=y CONFIG_IRQ_WORK=y CONFIG_THREAD_INFO_IN_TASK=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_BUILD_SALT="" CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_MSI_IOMMU=y CONFIG_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_MULTI_HANDLER=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y CONFIG_HIGH_RES_TIMERS=y CONFIG_PREEMPT_NONE=y CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_TINY_RCU=y CONFIG_SRCU=y CONFIG_TINY_SRCU=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_BPF=y CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y CONFIG_SYSCTL=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_BPF=y CONFIG_EXPERT=y CONFIG_MULTIUSER=y CONFIG_SYSFS_SYSCALL=y CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_FUTEX_PI=y CONFIG_HAVE_FUTEX_CMPXCHG=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y CONFIG_COMPAT_BRK=y CONFIG_SLUB=y CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_64BIT=y CONFIG_RISCV=y CONFIG_ARCH_MMAP_RND_BITS_MIN=18 CONFIG_ARCH_MMAP_RND_BITS_MAX=24 CONFIG_MMU=y CONFIG_ZONE_DMA32=y CONFIG_VA_BITS=39 CONFIG_PA_BITS=56 CONFIG_PAGE_OFFSET=0xffffffe000000000 CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_SYS_SUPPORTS_HUGETLBFS=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_CSUM=y CONFIG_GENERIC_HWEIGHT=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=3 CONFIG_SUNXI_SOC_NAME="" CONFIG_RISCV_SUNXI=y CONFIG_ARCH_SUNXI=y CONFIG_EVB_PLATFORM=y CONFIG_ARCH_SUN20I=y CONFIG_ARCH_SUN20IW1=y CONFIG_ARCH_SUN20IW1P1=y CONFIG_ARCH_RV64I=y CONFIG_CMODEL_MEDANY=y CONFIG_MODULE_SECTIONS=y CONFIG_MAXPHYSMEM_128GB=y CONFIG_TUNE_GENERIC=y CONFIG_RISCV_ISA_C=y CONFIG_FPU=y CONFIG_VECTOR=y CONFIG_HZ_250=y CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y CONFIG_CMDLINE="" CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_TIMES=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_CPUFREQ_DT=y CONFIG_CPUFREQ_DT_PLATDEV=y CONFIG_RISCV_ALLWINNER_SUN50I_CPUFREQ_NVMEM=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_PM_SLEEP=y CONFIG_PM=y CONFIG_PM_CLK=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_HAVE_ASM_MODVERSIONS=y CONFIG_HAVE_CLK=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_CC_HAS_STACKPROTECTOR_NONE=y CONFIG_LTO_NONE=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_ARCH_MMAP_RND_BITS=18 CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_CLONE_BACKWARDS=y CONFIG_64BIT_TIME=y CONFIG_PLUGIN_HOSTCC="" CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_BLOCK=y CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEBUG_FS=y CONFIG_MSDOS_PARTITION=y CONFIG_EFI_PARTITION=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y CONFIG_MQ_IOSCHED_DEADLINE=y CONFIG_MQ_IOSCHED_KYBER=y CONFIG_INLINE_SPIN_UNLOCK_IRQ=y CONFIG_INLINE_READ_UNLOCK=y CONFIG_INLINE_READ_UNLOCK_IRQ=y CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y CONFIG_ARCH_HAS_MMIOWB=y CONFIG_FREEZER=y CONFIG_BINFMT_ELF=y CONFIG_ELFCORE=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_BINFMT_SCRIPT=y CONFIG_ARCH_HAS_BINFMT_FLAT=y CONFIG_COREDUMP=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y CONFIG_MEMORY_ISOLATION=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_CONTIG_ALLOC=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_NEED_PER_CPU_KM=y CONFIG_CMA=y CONFIG_CMA_AREAS=7 CONFIG_FRAME_VECTOR=y CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_NET=y CONFIG_SKB_EXTENSIONS=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_UNIX_SCM=y CONFIG_UNIX_DIAG=y CONFIG_XFRM=y CONFIG_XFRM_ALGO=y CONFIG_NET_KEY=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_NET_IP_TUNNEL=y CONFIG_INET_TUNNEL=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_IPV6=y CONFIG_IPV6_SIT=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_HAVE_NET_DSA=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y CONFIG_CAN=y CONFIG_CAN_RAW=y CONFIG_CAN_BCM=y CONFIG_CAN_GW=y CONFIG_CAN_DEV=y CONFIG_CAN_CALC_BITTIMING=y CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y CONFIG_HAVE_EBPF_JIT=y CONFIG_HAVE_PCI=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_CACHE=y CONFIG_ALLOW_DEV_COREDUMP=y CONFIG_GENERIC_CPU_DEVICES=y CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y CONFIG_DMA_SHARED_BUFFER=y CONFIG_SUNXI_MBUS=y CONFIG_MTD=y CONFIG_MTD_OF_PARTS=y CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y CONFIG_AW_MTD_SPINAND=y CONFIG_AW_SPINAND_PHYSICAL_LAYER=y CONFIG_AW_SPINAND_SECURE_STORAGE=y CONFIG_AW_SPINAND_SIMULATE_MULTIPLANE=y CONFIG_MTD_UBI=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 CONFIG_DTC=y CONFIG_OF=y CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_KOBJ=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_RESERVED_MEM=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_VIRTIO_BLK=y CONFIG_SCSI_MOD=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_PROC_FS=y CONFIG_BLK_DEV_SD=y CONFIG_SCSI_LOWLEVEL=y CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y CONFIG_ETHERNET=y CONFIG_NET_VENDOR_ALACRITECH=y CONFIG_NET_VENDOR_ALLWINNER=y CONFIG_SUNXI_GMAC=y CONFIG_SUNXI_EXT_PHY=y CONFIG_NET_VENDOR_AMAZON=y CONFIG_NET_VENDOR_AQUANTIA=y CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_AURORA=y CONFIG_NET_VENDOR_BROADCOM=y CONFIG_NET_VENDOR_CADENCE=y CONFIG_NET_VENDOR_CAVIUM=y CONFIG_NET_VENDOR_CORTINA=y CONFIG_NET_VENDOR_EZCHIP=y CONFIG_NET_VENDOR_GOOGLE=y CONFIG_NET_VENDOR_HUAWEI=y CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y CONFIG_NET_VENDOR_MELLANOX=y CONFIG_NET_VENDOR_MICREL=y CONFIG_NET_VENDOR_MICROCHIP=y CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NET_VENDOR_NETRONOME=y CONFIG_NET_VENDOR_NI=y CONFIG_NET_VENDOR_8390=y CONFIG_NET_VENDOR_PENSANDO=y CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_NET_VENDOR_SEEQ=y CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SYNOPSYS=y CONFIG_NET_VENDOR_VIA=y CONFIG_NET_VENDOR_WIZNET=y CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y CONFIG_PHYLIB=y CONFIG_SWPHY=y CONFIG_FIXED_PHY=y CONFIG_USB_NET_DRIVERS=y CONFIG_WLAN=y CONFIG_WLAN_VENDOR_ADMTEK=y CONFIG_WLAN_VENDOR_ATH=y CONFIG_WLAN_VENDOR_ATMEL=y CONFIG_WLAN_VENDOR_BROADCOM=y CONFIG_WLAN_VENDOR_CISCO=y CONFIG_WLAN_VENDOR_INTEL=y CONFIG_WLAN_VENDOR_INTERSIL=y CONFIG_WLAN_VENDOR_MARVELL=y CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_WLAN_VENDOR_RALINK=y CONFIG_WLAN_VENDOR_REALTEK=y CONFIG_WLAN_VENDOR_RSI=y CONFIG_WLAN_VENDOR_ST=y CONFIG_WLAN_VENDOR_TI=y CONFIG_WLAN_VENDOR_ZYDAS=y CONFIG_WLAN_VENDOR_QUANTENNA=y CONFIG_INPUT=y CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y CONFIG_KEYBOARD_SUNXI=y CONFIG_INPUT_SENSOR=y CONFIG_SUNXI_GPADC=y CONFIG_SERIO=y CONFIG_SERIO_SERPORT=y CONFIG_SERIO_LIBPS2=y CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 CONFIG_LDISC_AUTOLOAD=y CONFIG_DEVMEM=y CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_EARLYCON_RISCV_SBI=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_SUNXI=y CONFIG_SERIAL_SUNXI_CONSOLE=y CONFIG_HVC_DRIVER=y CONFIG_VIRTIO_CONSOLE=m CONFIG_DUMP_REG=y CONFIG_DUMP_REG_MISC=y CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_MUX=y CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SUNXI=y CONFIG_SPI=y CONFIG_SPI_MASTER=y CONFIG_SPI_SUNXI=y CONFIG_PINCTRL=y CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y CONFIG_PINCTRL_SUNXI=y CONFIG_PINCTRL_SUN8IW20=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_OF_GPIO=y CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY_HWMON=y CONFIG_HWMON=y CONFIG_THERMAL=y CONFIG_THERMAL_STATISTICS=y CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_OF=y CONFIG_THERMAL_WRITABLE_TRIPS=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_EMULATION=y CONFIG_SUNXI_THERMAL=y CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y CONFIG_WATCHDOG_OPEN_TIMEOUT=0 CONFIG_SUNXI_WATCHDOG=y CONFIG_SSB_POSSIBLE=y CONFIG_BCMA_POSSIBLE=y CONFIG_MFD_CORE=y CONFIG_MFD_SUN6I_PRCM=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_SUNXI_REGULATOR_PWM=y CONFIG_RC_CORE=y CONFIG_RC_MAP=y CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=y CONFIG_IR_RC5_DECODER=y CONFIG_RC_DEVICES=y CONFIG_IR_RX_SUNXI=y CONFIG_IR_TX_SUNXI=y CONFIG_MEDIA_SUPPORT=y CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_VIDEO_DEV=y CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_V4L2_I2C=y CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=y CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m CONFIG_VIDEOBUF2_CORE=y CONFIG_VIDEOBUF2_V4L2=y CONFIG_VIDEOBUF2_MEMOPS=y CONFIG_VIDEOBUF2_VMALLOC=y CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_VIDEO_IR_I2C=y CONFIG_VIDEO_ENCODER_DECODER_SUNXI=y CONFIG_FB_CMDLINE=y CONFIG_FB=y CONFIG_DISP2_SUNXI=y CONFIG_SUNXI_DISP2_FB_DISABLE_ROTATE=y CONFIG_HDMI2_DISP2_SUNXI=y CONFIG_AW_PHY=y CONFIG_DISP2_SUNXI_DEBUG=y CONFIG_LCD_SUPPORT_HE0801A068=y CONFIG_LCD_SUPPORT_WILLIAMLCD=y CONFIG_LCD_SUPPORT_LQ101R1SX03=y CONFIG_LCD_SUPPORT_INET_DSI_PANEL=y CONFIG_LCD_SUPPORT_CC08021801_310_800X1280=y CONFIG_DISP2_SUNXI_SUPPORT_SMBL=y CONFIG_DISP2_SUNXI_SUPPORT_ENAHNCE=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=y CONFIG_VGA_CONSOLE=y CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE_COLUMNS=80 CONFIG_DUMMY_CONSOLE_ROWS=25 CONFIG_HID=y CONFIG_HID_GENERIC=y CONFIG_USB_HID=y CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_DEFAULT_PERSIST=y CONFIG_USB_AUTOSUSPEND_DELAY=2 CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_HCD_SUNXI=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_SUNXI=y CONFIG_USB_SUNXI_HCD=y CONFIG_USB_SUNXI_HCI=y CONFIG_USB_SUNXI_EHCI0=y CONFIG_USB_SUNXI_EHCI1=y CONFIG_USB_SUNXI_OHCI0=y CONFIG_USB_SUNXI_OHCI1=y CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE_REALTEK=y CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_DATAFAB=y CONFIG_USB_STORAGE_FREECOM=y CONFIG_USB_STORAGE_ISD200=y CONFIG_USB_STORAGE_USBAT=y CONFIG_USB_STORAGE_SDDR09=y CONFIG_USB_STORAGE_SDDR55=y CONFIG_USB_STORAGE_JUMPSHOT=y CONFIG_USB_STORAGE_ALAUDA=y CONFIG_USB_STORAGE_ONETOUCH=y CONFIG_USB_STORAGE_KARMA=y CONFIG_USB_STORAGE_CYPRESS_ATACB=y CONFIG_USB_STORAGE_ENE_UB6250=y CONFIG_USB_UAS=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 CONFIG_USB_SUNXI_UDC0=y CONFIG_USB_LIBCOMPOSITE=y CONFIG_USB_U_SERIAL=y CONFIG_USB_F_SERIAL=y CONFIG_USB_F_MASS_STORAGE=y CONFIG_USB_F_FS=y CONFIG_USB_CONFIGFS=y CONFIG_USB_CONFIGFS_UEVENT=y CONFIG_USB_CONFIGFS_SERIAL=y CONFIG_USB_CONFIGFS_MASS_STORAGE=y CONFIG_USB_CONFIGFS_F_FS=y CONFIG_USB_SUNXI_USB=y CONFIG_USB_SUNXI_USB_MANAGER=y CONFIG_USB_SUNXI_USB_DEBUG=y CONFIG_USB_SUNXI_USB_ADB=y CONFIG_USB_ROLE_SWITCH=y CONFIG_MMC=y CONFIG_PWRSEQ_EMMC=y CONFIG_PWRSEQ_SIMPLE=y CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_SUNXI=y CONFIG_MMC_SUNXI_V4P1X=y CONFIG_MMC_SUNXI_V4P00X=y CONFIG_MMC_SUNXI_V4P10X=y CONFIG_MMC_SUNXI_V4P5X=y CONFIG_MMC_SUNXI_V5P3X=y CONFIG_EDAC_SUPPORT=y CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" CONFIG_RTC_SYSTOHC=y CONFIG_RTC_SYSTOHC_DEVICE="rtc0" CONFIG_RTC_NVMEM=y CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y CONFIG_RTC_I2C_AND_SPI=y CONFIG_RTC_DRV_SUNXI=y CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_OF=y CONFIG_DMA_SUN6I=y CONFIG_SYNC_FILE=y CONFIG_VIRTIO=y CONFIG_STAGING=y CONFIG_ION=y CONFIG_ION_SYSTEM_HEAP=y CONFIG_ION_CMA_HEAP=y CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y CONFIG_SUNXI_CCU=y CONFIG_SUN8IW20_CCU=y CONFIG_SUN8IW20_R_CCU=y CONFIG_SUNXI_RTC_CCU=y CONFIG_TIMER_OF=y CONFIG_TIMER_PROBE=y CONFIG_RISCV_TIMER=y CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_OF_IOMMU=y CONFIG_IOMMU_DMA=y CONFIG_SUNXI_IOMMU=y CONFIG_SUNXI_IOMMU_DEBUG=y CONFIG_SUNXI_IOMMU_TESTS=y CONFIG_RPMSG=y CONFIG_RPMSG_VIRTIO=y CONFIG_SUNXI_SRAM=y CONFIG_SUNXI_SID=y CONFIG_SUNXI_RISCV_SUSPEND=y CONFIG_PWM=y CONFIG_PWM_SYSFS=y CONFIG_PWM_SUNXI_GROUP=y CONFIG_IRQCHIP=y CONFIG_SIFIVE_PLIC=y CONFIG_RESET_CONTROLLER=y CONFIG_RESET_SIMPLE=y CONFIG_RESET_SUNXI=y CONFIG_ANDROID=y CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y CONFIG_NVMEM_SUNXI_SID=y CONFIG_PM_OPP=y CONFIG_FS_IOMAP=y CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_JBD2=y CONFIG_FS_MBCACHE=y CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_AUTOFS4_FS=y CONFIG_AUTOFS_FS=y CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_CHILDREN=y CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y CONFIG_UBIFS_FS=y CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS_ZLIB=y CONFIG_UBIFS_FS_ZSTD=y CONFIG_UBIFS_FS_XATTR=y CONFIG_UBIFS_FS_SECURITY=y CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity" CONFIG_INIT_STACK_NONE=y CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_LIB_DES=y CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_ZSTD=y CONFIG_CRYPTO_USER_API=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_USER_API_RNG=y CONFIG_CRYPTO_USER_API_AEAD=y CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_SUNXI=y CONFIG_BITREVERSE=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_RATIONAL=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_CRC16=y CONFIG_CRC_ITU_T=y CONFIG_CRC32=y CONFIG_CRC32_SLICEBY8=y CONFIG_CRC7=y CONFIG_XXHASH=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARCH_HAS_DMA_WRITE_COMBINE=y CONFIG_DMA_DECLARE_COHERENT=y CONFIG_ARCH_HAS_SETUP_DMA_OPS=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y CONFIG_DMA_REMAP=y CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_CMA=y CONFIG_CMA_SIZE_MBYTES=16 CONFIG_CMA_SIZE_SEL_MBYTES=y CONFIG_CMA_ALIGNMENT=8 CONFIG_SGL_ALLOC=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_LIBFDT=y CONFIG_SG_POOL=y CONFIG_SBITMAP=y CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_DEBUG_INFO=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_DEBUG_FS=y CONFIG_OPTIMIZE_INLINING=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_MISC=y CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_KASAN_STACK=1 CONFIG_CC_HAS_SANCOV_TRACE_PC=y CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 CONFIG_SCHED_DEBUG=y CONFIG_DEBUG_BUGVERBOSE=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_BRANCH_PROFILE_NONE=y CONFIG_RUNTIME_TESTING_MENU=y CONFIG_UBSAN_ALIGNMENT=y
-
回复: 想请问怎么在d1开发板上通过摄像头实时输出图像到显示器上
# ls /dev/video* ls: /dev/video*: No such file or directory # # # [ 62.655510] sunxi-ehci 4200000.ehci1-controller: ehci_irq: highspeed device connect [ 62.896790] usb 1-1: new high-speed USB device number 4 using sunxi-ehci [ 63.280585] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0825) [ 63.401319] input: UVC Camera (046d:0825) as /devices/platform/soc@3000000/4200000.ehci1-controller/usb1/1-1/1-1:1.0/input/input3 # # # ls /dev/video* /dev/video0 /dev/video1 # #
-
回复: QQ群看到的外设齐全,封装友好,内置64M ddr的RV64芯片D1s,有没有哪位用过?
引脚有点少,估计折腾一圈下来,要么没有想要的功能,要么没有gpio了,得出一个QFN100/QFN144的才好玩。
-
新唐 N76E003 按键 单击/双击/长按 demo程序
#include "N76E003.h" #include "Common.h" #include "Delay.h" #include "SFR_Macro.h" #include "Function_define.h" #define TIMER1_INIT (6663 * 2) UINT8 u8TH1_Tmp,u8TL1_Tmp; UINT8 time_10ms_ok; unsigned char key; #define IO_KEY_INPUT P10 // 按键输入口 #define IO_BEEP P30 #define N_key 0 //无键 #define S_key 1 //单键 #define D_key 2 //双键 #define L_key 3 //长键 #define key_state_0 0 #define key_state_1 1 #define key_state_2 2 #define key_state_3 3 unsigned char key_driver(void) { static unsigned char key_state = key_state_0, key_time = 0; unsigned char key_press, key_return = N_key; key_press = IO_KEY_INPUT; // 读按键I/O电平 switch (key_state) { case key_state_0: // 按键初始态 if (!key_press) key_state = key_state_1; // 键被按下,状态转换到按键消抖和确认状态 break; case key_state_1: // 按键消抖与确认态 if (!key_press) { key_time = 0; // key_state = key_state_2; // 按键仍然处于按下,消抖完成,状态转换到按下键时间的计时状态,但返回的还是无键事件 } else key_state = key_state_0; // 按键已抬起,转换到按键初始态。此处完成和实现软件消抖,其实按键的按下和释放都在此消抖的。 break; case key_state_2: if(key_press) { key_return = S_key; // 此时按键释放,说明是产生一次短操作,回送S_key key_state = key_state_0; // 转换到按键初始态 } else if (++key_time >= 100) // 继续按下,计时加10ms(10ms为本函数循环执行间隔) { key_return = L_key; // 按下时间>1000ms,此按键为长按操作,返回长键事件 key_state = key_state_3; // 转换到等待按键释放状态 } break; case key_state_3: // 等待按键释放状态,此状态只返回无按键事件 if (key_press) key_state = key_state_0; //按键已释放,转换到按键初始态 break; } return key_return; } /*============= 中间层按键处理函数,调用低层函数一次,处理双击事件的判断,返回上层正确的无键、单键、双键、长键4个按键事件。 本函数由上层循环调用,间隔10ms ===============*/ unsigned char key_read(void) { static unsigned char key_m = key_state_0, key_time_1 = 0; unsigned char key_return = N_key,key_temp; key_temp = key_driver(); switch(key_m) { case key_state_0: if (key_temp == S_key ) { key_time_1 = 0; // 第1次单击,不返回,到下个状态判断后面是否出现双击 key_m = key_state_1; } else key_return = key_temp; // 对于无键、长键,返回原事件 break; case key_state_1: if (key_temp == S_key) // 又一次单击(间隔肯定<500ms) { key_return = D_key; // 返回双击键事件,回初始状态 key_m = key_state_0; } else { // 这里500ms内肯定读到的都是无键事件,因为长键>1000ms,在1s前低层返回的都是无键 if(++key_time_1 >= 50) { key_return = S_key; // 500ms内没有再次出现单键事件,返回上一次的单键事件 key_m = key_state_0; // 返回初始状态 } } break; } return key_return; } /* 下面,根据程序分析按键事件的反映时间: 1。对于长键,按下超过1s马上响应,反映最快 2。对于双键,第2次按键释放后马上得到反映。 3。对于单键,释放后延时拖后500ms才能响应,反映最慢。这个与需要判断后面是否有双击操作有关,只能这样。实际应用中,可以调整两次单击间隔时间定义,比如为300ms,这样单击的响应回快一点,单按键操作人员需要加快按键的操作过程。如果产品是针对老年人的,这个时间不易太短,因为年纪大的人,反映和动作都比较慢。 当然,上面两段可以合在一起。我这样做的目的,是为了可以方便的扩展为N击(当然,需要做修改)。可是最底层的就是最基本的操作处理短按和长按,不用改动的。至于双击,还是N击,在中间层处理。这就是程序设计中分层结构的优点。 测试代码环境如下: */ void Timer1_ISR (void) interrupt 3 // timer1定时器10ms中断服务 { TH1 = u8TH1_Tmp; TL1 = u8TL1_Tmp; P06 = ~P06; //P0.3 toggle when interrupt time_10ms_ok = 1; } main(void) { Set_All_GPIO_Quasi_Mode; TIMER1_MODE1_ENABLE; //定时器1, 模式1, 16bit定时器, 定时器值满 0xFFFF -> 0x0000 产生中断。 clr_T1M; //T1M = 0,兼容传统 8051, TIMER1时钟 = Fsys/12 = 16M /12 //set_T1M; //T1M = 1, TIMER1时钟 = Fsys = 16M u8TH1_Tmp = (65536 - TIMER1_INIT)/256; u8TL1_Tmp = (65536 - TIMER1_INIT)%256; TH1 = u8TH1_Tmp; TL1 = u8TL1_Tmp; set_ET1; //enable Timer1 interrupt set_EA; //enable interrupts set_TR1; //Timer1 run while (1) { if (time_10ms_ok) //每10ms执行一次, { time_10ms_ok =0; key = key_read(); //《====== 10ms一次调用按键中间层函数,根据返回键值,点亮不同的LED灯,全面测试按键操作是否正常 if(key == S_key) //短按 { IO_BEEP = 0; Timer0_Delay1ms(10); IO_BEEP = 1; } else if(key == D_key) //双击 { IO_BEEP = 0; Timer0_Delay1ms(50); IO_BEEP = 1; } else if (key == L_key) //长按 { IO_BEEP = 0; Timer0_Delay1ms(150); IO_BEEP = 1; } } } }
-
请大家推荐一下串口屏,公司最近有个新的项目,迪文/大彩/欣瑞达/陶晶驰/昆仑 哪个性价比好,稳定性好,开发友好呢?
请大家推荐一下串口屏,公司最近有个新的项目,迪文/大彩/欣瑞达/陶晶驰/昆仑 哪个性价比好,稳定性好,开发友好呢?
-
自己动手编写一个非常简单的RISC-V C调用使用ABI规则ASM汇编的demo, 使用qemu-riscv64虚拟机测试.
hello.c
#include <stdio.h> extern int plus(int a, int b); int main(void) { printf("hello, %d\n", plus(111, 222)); }
plus.S
.text .global plus plus: add a0,a1,a0 ret
编译:
riscv64-linux-gnu-gcc -o hello hello.c plus.S -g
运行:
$ QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ qemu-riscv64 hello hello, 333
-
捡垃圾了,4K机顶盒,,好像很划算
https://item.taobao.com/item.htm?id=646113778555
https://bbs.nas66.com/thread-12104-1-1.html
4K机顶盒,,好像很合算。。。
-
[转载]这一次,告诉你一个关于 IO 的小知识,为什么要对齐
https://mp.weixin.qq.com/s/HWRMbCUHOHUzQX2mW49Kkw
IO 要对齐:
资深存储人员为啥总叫你注意 IO 对齐的?机械磁盘 IO 为什么要 512 对齐呢,SSD 盘为啥要 4K 对齐?不对齐又会如何?
重要的知识点:
机械盘的 IO 要扇区对齐(绝大部分的扇区是 512 字节大小),磁盘的读写最小单元就是扇区;
SSD 盘的 IO 要 4K 对齐,SSD 盘的读写单元是 page,一个 page 为 4K 大小;如果不对齐,会有什么问题?
性能极差;
SSD 寿命缩短;出问题的原因是啥?
本质原因是内部 IO 流量和次数的放大。 -
(转载) 耗时两年,19岁小伙采用230片纯74逻辑芯片搭建出32位Risc-V处理器!可玩贪吃蛇
https://mp.weixin.qq.com/s/fgHkHLv8KB9RcjQdL4Alxg
如果你想自己DIY CPU,第一个想到的一定是采用FPGA来实现,对于一个电子行业的朋友来说做一个简单的CPU应该不算太难。当然也有另类做法,比如有人在我的世界游戏里,采用红石搭建过CPU,如下图: