描述

电子发烧友网讯:ZedBoard开发板上的Zynq是一个ARM PS(processing system, 双核A9 + 存储管理 + 外设)+ PL(programable Logic) 结构,如果不使用PL,zynq的开发和普通的ARM 开发一样。不同的是ARM PS是可配置,因而硬件信息是不固定的。这也是zynq灵活性的一个表现。电子发烧友网编辑现为读者整合《玩转赛灵思Zedboard开发板》系列文章, 其中包括在ZedBoard开发板上的一些应用实例。其内容包括:

从本小节开始,讲着重介绍Zedboard上的嵌入式linux应用,包括使用SDK设计最简单的linux应用程序、linux交叉编译环境搭建、设备驱动编写等内容。本小节使用的linux系统是Digilent官方提供的OOB设计,它是Digilent官网给出的一个完整的、Zedboard可运行的linux 系统,包含了Zedboard上的几个重要的设备驱动如串口、USB、以太网、OLED、HDMI等。当linux在Zedboard上运行起来后,Zedboard就是一个小型的嵌入式系统,使用SDK及Xilinx ARM Linux工具链编译生成的可执行文件可以在这个系统执行。

硬件平台:Digilent ZedBoard;开发环境:Windows XP 32 bit;软件: SDK 14.2。

一、获取Zedboard可运行的linux

Digilent官网给出Zedboard的可运行linux设计ZedBoard_OOB_Design包,可从http://www.digilentinc.com/Data/Documents/Other/ZedBoard_OOB_Design.zip获取,下载后解压,可以看到包的结构和内容:

boot_image目录:

-- system.bit – 配置FPGA的bit文件

-- u-boot.elf – 引导linux需要的Second-Stage boot loader

-- zynq_fsbl.elf – 配置ARM PS系统的First-Stage boot loader(FSBL)

doc目录:

-- README.txt – 说明文件

hw目录:

-- EDK 14.1版本的XPS工程,用来生成硬件文件和bit文件

linux目录:

-- devicetree_ramdisk.dts – 设备树源代码

-- .config – Linux内核配置文件,用来生成zImage

sd_image目录:

-- BOOT.BIN – 使用boot_images中的三个文件生成的Zynq配置文件

-- devicetree_ramdisk.dtb – 编译后的设备树文件

-- ramdisk8M.image.gz – 编译后的文件系统

-- README – 介绍如何运行OOB设计的说明文档

-- zImage – 编译后的内核

sw目录:

--硬件配置

--FSBL源代码

其中sd_image目录中包含了ZedBoard上能够运行linux的所有文件。将SD卡格式化为Fat32,把sd_image目录文件拷贝到SD 卡根目录下;然后将JP7~JP11设置为SD卡启动模式,将JP2短路,JP3断开,这样可以下一步我们可以把U盘作为USB 从设备挂载到Zedboard上。

图 Zedboard的连接和短路块设置

上电后,等待ARM PS的配置、FPGA的配置(蓝色LED DONE 亮起),之后开始引导Linux系统了。可以从超级终端上看到一系列的引导信息:

1 U-Boot 2012.04.01-00297-gc319bf9-dirty (Sep 13 2012 - 09:30:49)

2

3 DRAM: 512 MiB

4 WARNING: Caches not enabled

5 MMC: SDHCI: 0

6 Using default environment

7

8 In: serial

9 Out: serial

10 Err: serial

11 Net: zynq_gemHit any key to stop autoboot: 0

12 Copying Linux from SD to RAM.。。

13 Device: SDHCI

14 Manufacturer ID: 1b

15 OEM: 534d

16 Name: 00000

17 Tran Speed: 25000000

18 Rd Block Len: 512

19 SD version 1.0

20 High Capacity: Yes

21 Capacity: 3.7 GiB

22 Bus Width: 1-bit

23 reading zImage

24

25 2479640 bytes read

26 reading devicetree_ramdisk.dtb

27

28 5817 bytes read

29 reading ramdisk8M.image.gz

30

31 3694108 bytes read

32 ## Starting application at 0x00008000 。。。

33 Uncompressing Linux.。。 done, booting the kernel.

34 [ 0.000000] Booting Linux on physical CPU 0

35 [ 0.000000] Linux version 3.3.0-digilent-12.07-zed-beta (tinghui.wang@DIGILENT_LINUX) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-50) ) #2 SMP PREEMPT Thu Jul 12 21:01:42 PDT 2012

36 [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d

37 [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

38 [ 0.000000] Machine: Xilinx Zynq Platform, model: Xilinx Zynq ZED

39 [ 0.000000] bootconsole [earlycon0] enabled

40 [ 0.000000] Memory policy: ECC disabled, Data cache writealloc

41 [ 0.000000] BUG: mapping for 0xf8f00000 at 0xfe00c000 out of vmalloc space

42 [ 0.000000] BUG: mapping for 0xe0000000 at 0xfe000000 out of vmalloc space

43 [ 0.000000] BUG: mapping for 0xffff1000 at 0xfe200000 out of vmalloc space

44 [ 0.000000] PERCPU: Embedded 7 pages/cpu @c1489000 s5696 r8192 d14784 u32768

45 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 125824

46 [ 0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/ram rw initrd=0x800000,8M earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0

47 [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)

48 [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

49 [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

50 [ 0.000000] Memory: 240MB 256MB = 496MB total

51 [ 0.000000] Memory: 489856k/489856k available, 34432k reserved, 0K highmem

52 [ 0.000000] Virtual kernel memory layout:

53 [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

54 [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

55 [ 0.000000] vmalloc : 0xe0800000 - 0xfd000000 ( 456 MB)

56 [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)

57 [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)

58 [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)

59 [ 0.000000] .text : 0xc0008000 - 0xc042f040 (4253 kB)

60 [ 0.000000] .init : 0xc0430000 - 0xc0456640 ( 154 kB)

61 [ 0.000000] .data : 0xc0458000 - 0xc0485dc0 ( 184 kB)

62 [ 0.000000] .bss : 0xc0485de4 - 0xc049d734 ( 95 kB)

63 [ 0.000000] Preemptible hierarchical RCU implementation.

64 [ 0.000000] Verbose stalled-CPUs detection is disabled.

65 [ 0.000000] NR_IRQS:128

66 [ 0.000000] xlnx,ps7-ttc-1.00.a #0 at 0xe0800000, irq=43

67 [ 0.000000] Console: colour dummy device 80x30

68 [ 0.000000] Calibrating delay loop.。。 1594.16 BogoMIPS (lpj=7970816)

69 [ 0.090000] pid_max: default: 32768 minimum: 301

70 [ 0.090000] Mount-cache hash table entries: 512

71 [ 0.090000] CPU: Testing write buffer coherency: ok

72 [ 0.090000] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000

73 [ 0.100000] smp_twd: clock not found: -2

74 [ 0.100000] Calibrating local timer.。。 399.36MHz.

75 [ 0.170000] hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

76 [ 0.170000] Setting up static identity map for 0x2f8d48 - 0x2f8d7c

77 [ 0.270000] CPU1: Booted secondary processor

78 [ 0.310000] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001

79 [ 0.310000] Brought up 2 CPUs

80 [ 0.310000] SMP: Total of 2 processors activated (3188.32 BogoMIPS)。

81 [ 0.320000] devtmpfs: initialized

82 [ 0.320000] ------------[ cut here ]------------

83 [ 0.320000] WARNING: at arch/arm/mm/dma-mapping.c:198 consistent_init+0x70/0x104()

84 [ 0.330000] Modules linked in:

85 [ 0.330000] [《c0012920》] (unwind_backtrace+0x0/0xe0) from [《c001e924》] (warn_slowpath_common+0x4c/0x64)

86 [ 0.340000] [《c001e924》] (warn_slowpath_common+0x4c/0x64) from [《c001e954》] (warn_slowpath_null+0x18/0x1c)

87 [ 0.350000] [《c001e954》] (warn_slowpath_null+0x18/0x1c) from [《c04345a8》] (consistent_init+0x70/0x104)

88 [ 0.360000] [《c04345a8》] (consistent_init+0x70/0x104) from [《c000858c》] (do_one_initcall+0x90/0x160)

89 [ 0.360000] [《c000858c》] (do_one_initcall+0x90/0x160) from [《c043085c》] (kernel_init+0x84/0x128)

90 [ 0.370000] [《c043085c》] (kernel_init+0x84/0x128) from [《c000dfcc》] (kernel_thread_exit+0x0/0x8)

91 [ 0.380000] ---[ end trace 1b75b31a2719ed1c ]---

92 [ 0.380000] ------------[ cut here ]------------

93 [ 0.390000] WARNING: at arch/arm/mm/dma-mapping.c:198 consistent_init+0x70/0x104()

94 [ 0.390000] Modules linked in:

95 [ 0.390000] [《c0012920》] (unwind_backtrace+0x0/0xe0) from [《c001e924》] (warn_slowpath_common+0x4c/0x64)

96 [ 0.400000] [《c001e924》] (warn_slowpath_common+0x4c/0x64) from [《c001e954》] (warn_slowpath_null+0x18/0x1c)

97 [ 0.410000] [《c001e954》] (warn_slowpath_null+0x18/0x1c) from [《c04345a8》] (consistent_init+0x70/0x104)

98 [ 0.420000] [《c04345a8》] (consistent_init+0x70/0x104) from [《c000858c》] (do_one_initcall+0x90/0x160)

99 [ 0.430000] [《c000858c》] (do_one_initcall+0x90/0x160) from [《c043085c》] (kernel_init+0x84/0x128)

100 [ 0.430000] [《c043085c》] (kernel_init+0x84/0x128) from [《c000dfcc》] (kernel_thread_exit+0x0/0x8)

101 [ 0.440000] ---[ end trace 1b75b31a2719ed1d ]---

102 [ 0.440000] NET: Registered protocol family 16

103 [ 0.460000] L310 cache controller enabled

104 [ 0.460000] l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72060000, Cache size: 524288 B

105 [ 0.460000] registering platform device ‘pl330’ id 0

106 [ 0.470000] registering platform device ‘arm-pmu’ id 0

107 [ 0.470000]

108 [ 0.470000] ###############################################

109 [ 0.480000] # #

110 [ 0.480000] # Board ZED Init #

111 [ 0.480000] # #

112 [ 0.490000] ###############################################

113 [ 0.490000]

114 [ 0.500000] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpointregisters.

115 [ 0.500000] hw-breakpoint: maximum watchpoint size is 4 bytes.

116 [ 0.530000] xslcr xslcr.0: at 0xF8000000 mapped to 0xE0808000

117 [ 0.540000] bio: create slab 《bio-0》 at 0

118 [ 0.540000] gpiochip_add: registered GPIOs 0 to 245 on device: xgpiops

119 [ 0.540000] xgpiops e000a000.gpio: gpio at 0xe000a000 mapped to 0xe080a000

120 [ 0.550000] SCSI subsystem initialized

121 [ 0.550000] usbcore: registered new interface driver usbfs

122 [ 0.560000] usbcore: registered new interface driver hub

123 [ 0.560000] usbcore: registered new device driver usb

124 [ 0.570000] Advanced Linux Sound Architecture Driver Version 1.0.24.

125 [ 0.570000] Switching to clocksource xttcpss_timer1

126 [ 0.590000] NET: Registered protocol family 2

127 [ 0.590000] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)

128 [ 0.590000] TCP established hash table entries: 16384 (order: 5, 131072 bytes)

129 [ 0.600000] TCP bind hash table entries: 16384 (order: 5, 196608 bytes)

130 [ 0.600000] TCP: Hash tables configured (established 16384 bind 16384)

131 [ 0.610000] TCP reno registered

132 [ 0.610000] UDP hash table entries: 256 (order: 1, 8192 bytes)

133 [ 0.620000] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)

134 [ 0.620000] NET: Registered protocol family 1

135 [ 0.630000] Trying to unpack rootfs image as initramfs.。。

136 [ 0.630000] rootfs image is not initramfs (no cpio magic); looks like an initrd

137 [ 0.670000] Freeing initrd memory: 8192K

138 [ 0.670000] xscugtimer xscugtimer.0: ioremap fe00c200 to e0810200 with size 400

139 [ 0.670000] pl330 dev 0 probe success

140 [ 0.680000] msgmni has been set to 972

141 [ 0.680000] io scheduler noop registered

142 [ 0.680000] io scheduler deadline registered

143 [ 0.680000] io scheduler cfq registered (default)

144 [ 0.690000] e00 0.690000] console [ttyPS0] enabled, bootconsole disabled

145 [ 0.690000] console [ttyPS0] enabled, bootconsole disabled

146 [ 0.700000] xdevcfg f8007000.devcfg: ioremap f8007000 to e0814000 with size 1000

147 [ 0.710000] [drm] Initialized drm 1.1.0 20060810

148 [ 0.720000] brd: module loaded

149 [ 0.730000] loop: module loaded

150 [ 0.730000] xqspips e000d000.qspi: at 0xE000D000 mapped to 0xE0816000, irq=51

151 [ 0.740000] GEM: BASEADDRESS hw: e000b000 virt: e0818000

152 [ 0.740000] XEMACPS mii bus: probed

153 [ 0.750000] eth0, pdev-》id -1, baseaddr 0xe000b000, irq 54

154 [ 0.750000] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver

155 [ 0.760000] usb_hcd_xusbps_probe: No OTG assigned!

156 [ 0.760000] usb_hcd_xusbps_probe: OTG now assigned!

157 [ 0.770000] xusbps-ehci xusbps-ehci.0: Xilinx PS USB EHCI Host Controller

158 [ 0.770000] xusbps-ehci xusbps-ehci.0: new USB bus registered, assigned bus number 1

159 [ 0.810000] xusbps-ehci xusbps-ehci.0: irq 53, io mem 0x00000000

160 [ 0.830000] xusbps-ehci xusbps-ehci.0: USB 2.0 started, EHCI 1.00

161 [ 0.830000] hub 1-0:1.0: USB hub found

162 [ 0.830000] hub 1-0:1.0: 1 port detected

163 [ 0.840000] Initializing USB Mass Storage driver.。。

164 [ 0.840000] usbcore: registered new interface driver usb-storage

165 [ 0.850000] USB Mass Storage support registered.

166 [ 0.850000] Xilinx PS USB Device Controller driver (Apr 01, 2011)

167 [ 0.860000] mousedev: PS/2 mouse device common for all mice

168 [ 0.860000] Linux video capture interface: v2.00

169 [ 0.870000] gspca_main: v2.14.0 registered

170 [ 0.870000] usbcore: registered new interface driver uvcvideo

171 [ 0.870000] USB Video Class driver (1.1.1)

172 [ 0.880000] WDT OF probe

173 [ 0.880000] xwdtps f8005000.swdt: Xilinx Watchdog Timer at 0xe081c000 with timeout 10 seconds

174 [ 0.890000] sdhci: Secure Digital Host Controller Interface driver

175 [ 0.890000] sdhci: Copyright(c) Pierre Ossman

176 [ 0.900000] sdhci-pltfm: SDHCI platform and OF driver helper

177 [ 0.900000] mmc0: Invalid maximum block size, assuming 512 bytes

178 [ 0.910000] mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA

179 [ 0.910000] usbcore: registered new interface driver usbhid

180 [ 0.920000] usbhid: USB HID core driver

181 [ 0.920000] No connectors reported connected with modes

182 [ 0.930000] adv7511 0-0039: Failed to add route DAI IN-》TMDS

183 [ 0.940000] [drm] Cannot find any crtc or sizes - going 1024x768

184 [ 0.940000] drivers/gpu/drm/analog/analog_drm_fbdev.c:analog_drm_fbdev_probe[241]

185 [ 0.960000] asoc: adv7511 《-》 75c00000.axi-spdif-tx mapping ok

186 [ 0.960000] axi-spdif 75c00000.axi-spdif-tx: Failed to set DAI format: -22

187 [ 0.980000] ALSA device list:

188 [ 0.980000] #0: HDMI monitor

189 [ 0.980000] TCP cubic registered

190 [ 0.980000] NET: Registered protocol family 17

191 [ 0.980000] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4

192 [ 0.980000] Registering SWP/SWPB emulation handler

193 [ 0.980000] registered taskstats version 1

194 [ 0.980000] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

195 [ 0.980000] Console: switching to colour frame buffer device 128x48

196 [ 1.000000] mmc0: new high speed SDHC card at address 0002

197 [ 1.030000] fb0: frame buffer device

198 [ 1.030000] mmcblk0: mmc0:0002 00000 3.70 GiB

199 [ 1.040000] drm: registered panic notifier

200 [ 1.040000] [drm] Initialized analog_drm 1.0.0 20110530 on minor 0

201 [ 1.050000] mmcblk0: p1

202 [ 1.050000] RAMDISK: gzip image found at block 0

203 [ 1.310000] EXT4-fs (ram0): warning: mounting unchecked fs, running e2fsck is recommended

204 [ 1.320000] EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)

205 [ 1.320000] VFS: Mounted root (ext4 filesystem) on device 1:0.

206 [ 1.330000] Freeing init memory: 152K

207 Starting rcS.。。

208 ++ Mounting filesystem

209 ++ Setting up mdev

210 ++ Configure static IP 192.168.1.10

211 [ 1.510000] GEM: lp-》tx_bd ffdfb000 lp-》tx_bd_dma 181a9000 lp-》tx_skb d816b0c0

212 [ 1.520000] GEM: lp-》rx_bd ffdfc000 lp-》rx_bd_dma 181a8000 lp-》rx_skb d816b1c0

213 [ 1.520000] GEM: MAC 0x00350a00, 0x00002201, 00:0a:35:00:01:22

214 [ 1.530000] GEM: phydev d8b81400, phydev-》phy_id 0x1410dd1, phydev-》addr 0x0

215 [ 1.540000] eth0, phy_addr 0x0, phy_id 0x01410dd1

216 [ 1.540000] eth0, attach [Marvell 88E1510] phy driver

217 ++ Starting telnet daemon

218 ++ Starting http daemon

219 ++ Starting ftp daemon

220 ++ Starting dropbear (ssh) daemon

221 ++ Starting OLED Display

222 [ 1.580000] pmodoled-gpio-spi [zed_oled] SPI Probing

223 [ 1.730000] usb 1-1: new high-speed USB device number 2 using xusbps-ehci

224 ++ Exporting LEDs & SWs

225 rcS Complete

226 zynq>

至此,linux已经在Zedboard上启动起来。从超级终端输出的信息我们打开可以知道,“这个”linux系统的一些基本情况,如8~10行

In: serial

Out: serial

Err: serial

输入输出调试信息使用的都是serial,即串口,这里是超级终端,因而超级终端就如同linux系统下的控制台,我们可以键入linux的命令对系统进行操作,例如输入ls命令,可以显示当前目录内容:

其他命令如cd、mkdir、cp、rm等基本命令均可以执行。

77~79行提示信息

[ 0.270000] CPU1: Booted secondary processor

[ 0.310000] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001

[ 0.310000] Brought up 2 CPUs

可以知道ARM PS的两个CPU均被启动

再如163~171行

[ 0.840000] Initializing USB Mass Storage driver.。。

[ 0.840000] usbcore: registered new interface driver usb-storage

[ 0.850000] USB Mass Storage support registered.

[ 0.850000] Xilinx PS USB Device Controller driver (Apr 01, 2011)

[ 0.860000] mousedev: PS/2 mouse device common for all mice

[ 0.860000] Linux video capture interface: v2.00

[ 0.870000] gspca_main: v2.14.0 registered

[ 0.870000] usbcore: registered new interface driver uvcvideo

[ 0.870000] USB Video Class driver (1.1.1)

可以知道大容量USB设备驱动已经安装,包括PS USB设备等驱动均安装了,因此可以使用U盘、USB键盘、鼠标、摄像头等设备。

二、使用SDK设计linux应用程序

接下来我们就可以像其他的嵌入式linux开发一样来使用Zedboard了。SDK提供了标准可视化的linux-arm交叉编译链,不需要再进行交叉编译环境的搭建。

启动SDK,new-》C project,选择工程类型为“Xilinx ARM Linux Executable”,工具链为“Xilinx ARM GNU/Linux Toolchain”

在工程配置选项中,去掉Debug(因为我们不需要进行调试),只保留Release

工程建立后好,新建main.c文件,修改内容如下:

1 /*

2 * hello.c

3 *

4 * Created on: 2012-11-8

5 * @超群天晴 http://www.cnblogs.com/surpassal/

6 */

7

8 #include 《stdio.h》

9

10 int main()

11 {

12 printf(“HelloWorld!\n”);

13 printf(“This is from Zedboard Linux!\n”);

14 printf(“2012年11月8日16:43:22 by 超群天晴\n”);

15 return 0;

16 }

就是一个简单的从控制台输出helloworld信息。编译后生成了lab_6.elf可执行文件,将其拷贝到了U盘上。

三、运行linux可执行程序

将U盘连接到Zedboard,控制台会提示有USB device连接上,分配给这个设备的名称是sda1

1 zynq> [ 2263.970000] usb 1-1: new high-speed USB device number 2 using xusbps-ehci

2 [ 2264.120000] scsi0 : usb-storage 1-1:1.0

3 [ 2265.130000] scsi 0:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 4

4 [ 2265.140000] sd 0:0:0:0: [sda] 3932160 512-byte logical blocks: (2.01 GB/1.87GiB)

5 [ 2265.140000] sd 0:0:0:0: Attached scsi generic sg0 type 0

6 [ 2265.150000] sd 0:0:0:0: [sda] Write Protect is off

7 [ 2265.150000] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn‘t support DPO or FUA

8 [ 2265.170000] sda: sda1

9 [ 2265.180000] sd 0:0:0:0: [sda] Attached SCSI removable disk

10

11 zynq>

使用mount命令

mount /dev/sda1 /mnt/

将设备挂载到mnt目录下,

输入命令

cd /mnt

切换到mnt目录

输入命令

ls

可以看到目录下有我们刚刚生成的lab_6.elf可执行文件

输入命令

./lab_6.elf

运行,可以看到执行结果,控制台输出了我们需要的信息

===============================

Digilent官方OOB设计参考:http://www.digilentinc.com/Data/Documents/Other/ZedBoard_OOB_Design.zip

完整工程下载:【详见】

打开APP精彩内容

点击阅读全文

赛灵思运行linux,玩转赛灵思Zedboard开发板(6):如何在Zedboard上运行linux下的应用程序?...相关推荐

  1. linux can总线接收数据串口打包上传_使用Zedboard开发板学习Linux的移植及驱动开发...

    本文是昨天发的文章<龙芯杯CPU设计竞赛与ZYNQ设计流程介绍>接续部分.重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种. 部分硬件设计中需要CPU完 ...

  2. Zedboard开发板的linux搭建

    1.简介 zynq是xilinx推出的一款集成arm核以及fpga可编程逻辑器件的soc芯片,使得它不仅拥有 ASIC 在能耗.性能和兼容性方面的优势,而且具有FPGA 硬件可编程性的优点.zynq主 ...

  3. 玩转你的开发板-1.4.第1季第4部分-朱有鹏-专题视频课程

    玩转你的开发板-1.4.第1季第4部分-1586人已学习 课程介绍         本课程是<朱有鹏老师单片机完全学习系列课程>第1季第4个课程,主要内容是带领大家玩转课程配套开发板,包括 ...

  4. 电脑向linux板卡传文件,ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

    ARM 开发板嵌入式linux系统与主机PC通过串口传输文件 本来以为按以下两篇文章就可以几步轻松搞定这个问题,没想到遇到两个小麻烦: 1,我用的xp虚拟机下redhat9.0做主机,按照下面第一篇文 ...

  5. linux平台下的6818开发板(ARM)显示屏的字体显示

    软件开发环境:ubuntu-18.04\ubuntu-16.04 硬件开发环境:ARM架构下的6818开发板 串口软件:secureCRT(类似于Linux终端下的命令行操作) 通过Linux平台用终 ...

  6. linux 模拟arm,拒绝开发板, 用 SkyEye 就可以模拟 ARM Linux!

    描述 对于希望学习 ARM 汇编的同学而言, 购买 ARM 开发板进行板上实测无疑是一个有效的方法,不过购买 ARM 开发板需要一笔费用,而且每次测试都需要连接开发板,比较麻烦.这里介绍一个 ARM ...

  7. at91sam9260ek开发板linux移植文档,AT91SAM9260EK开发板 Linux 移植 移植 文档

    AT91SAM9260EK开发板 Linux 移植 移植 文档 AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 Li ...

  8. TurnipBit:可以带着孩子一起玩编程的MicroPython开发板!

    2019独角兽企业重金招聘Python工程师标准>>> 从小就编程"有可能不只是名人传记里才能看到的故事,现在"全民编程"已成一股热潮,那么让孩子接触编 ...

  9. iPhone开发入门(10)— 设备上运行程序

    博主:易飞扬 原文链接 : http://www.yifeiyang.net/introduction-to-iphone-development-10-devices-running-the-pro ...

最新文章

  1. 前端性能之回流与重绘(reflow repaint)
  2. qt-designer使用教程3--编写自己的槽
  3. MATLAB中的字符串处理
  4. 四十六、MongoDB数据库学习
  5. 【数据结构与算法】之深入解析“两数相加II”的求解思路与算法示例
  6. 前端干货之JS最佳实践
  7. 基于SkyEye的覆盖率测试
  8. 关于运营Tiktok账号的问题?
  9. C# UrlEncoding
  10. B站韩顺平java学习笔记(九)-- 面向对象编程(高级)章节
  11. STM32驱动SG90舵机与HC_SR04超声波模块
  12. ceph pg peering和恢复 (2)
  13. (2)VBA 关键字
  14. Sketch for mac(专业矢量绘图设计软件)
  15. 5大代码规则,守护程序猿世界的爱与和平!
  16. 连作业都不会抄!盘点那些年被淘宝直播带沟里的直播平台
  17. Android Camera 预览拉伸问题
  18. 使用php写输出hello的代码,如何使用php输出hello world?-PHP问题
  19. 卷积神经网络案例:LeNet-5手写数字识别
  20. HR面-面试题及套路总结

热门文章

  1. mapDispatchToProps的三种方式mapStateToProps
  2. CentOS安装GlusterFS
  3. 读书笔记——我知道的杨振宁(葛墨林/2022)
  4. 蓝牙各种版本的区别(推荐)
  5. matlab滤波器滤除低频直流信号,极低频滤波器MATLAB
  6. flash打印纸张设置
  7. oracle数据库之统计分析(方差、标准差、协方差)
  8. 简单的proxy之TinyHTTPProxy.py
  9. C++继承和派生笔记
  10. LTE学习:PHICH(一)