imx6ul蓝牙语音识别项目之1:硬件准备

Posted TonyHo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了imx6ul蓝牙语音识别项目之1:硬件准备相关的知识,希望对你有一定的参考价值。

硬件
在一些
时间的延误后,终于收到了顺丰过来的板子,本以为需要到年后了。听说板子的延误是因为发现了一个小问题。
收到板子后打开看到的是盒子包装,看起来“高大上”的感觉:


打开,里面有一张V3 软件的BSP, 网线, OTG USB 线,以及 电源线:


核心的板子看起来不错,至少做工和基本可见的布线很漂亮:

但是板子的尺寸比我想象的小。

软件
在将关盘拷贝到电脑后,发现结构和以前IoT和Industry里面是类似的:
.
├── 01-Document
├── 02-Images
├── 03-Tools
├── 04-Source
└── uboot-imx-20180206.tar.gz
这个uboot是从网站下载的,因为看起来更新。
同样的没有找到如何连接串口等的说明, 但是对于我们这些嵌入式老鸟而言,看一眼板子,就会发现TX,RX和GND,就位于板子电源边,插上,打开串口上电,一切都很好。

于是根据手册编译代码,然后烧写启动,意外发生了。

Kernel panic

panic的log如下:

mmc0: host does not support reading read-only switch, assuming write-enable
mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
Unhandled fault: external abort on non-linefetch (0x1008) at 0x92ac0fa8
pgd = 80004000
[92ac0fa8] *pgd=8c317811, *pte=02140653, *ppte=02140453
Internal error: : 1008 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.1.15+ #1
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
task: 8c050000 ti: 8c054000 task.ti: 8c054000
PC is at caam_probe+0x134/0xf14
LR is at _raw_spin_unlock_irqrestore+0x28/0x54
pc : [<8057d468>]    lr : [<8077e658>]    psr: a0000113
sp : 8c055e20  ip : 807aad64  fp : 00000000
r10: 80ad5c6c  r9 : 80ac926c  r8 : 00000000
r7 : fffffdfb  r6 : 80b2c290  r5 : 8fdefc78  r4 : 8c274a90
r3 : 92ac0000  r2 : 00000000  r1 : 60000113  r0 : 8fdefc78
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 8000406a  DAC: 00000015
Process swapper/0 (pid: 1, stack limit = 0x8c054210)
Stack: (0x8c055e20 to 0x8c056000)
5e20: 8c055e28 8c459dc0 00000000 00000000 8c12d600 8c12d610 8c12f690 80149a60
5e40: 00000001 80ac926c 8c12f690 8c459d20 00000000 8c12f690 92ac0000 00000001
5e60: 8c459dc0 80ba1d18 8c12d610 80b2c290 fffffdfb 00000000 80ac926c 80ad5c6c
5e80: 00000000 80387508 80ba1d18 8c12d610 80b2c290 00000000 00000000 80385da4
5ea0: 8c12d610 80b2c290 8c12d644 80b07f50 00000000 80385fb4 00000000 80b2c290
5ec0: 80385f28 80384430 8c03095c 8c121f34 80b2c290 8c45a380 00000000 80385534
5ee0: 809ddf88 80ae1820 8c45b500 80b2c290 80ae1820 8c45b500 80ab3bdc 803865b4
5f00: 80ae1820 80ae1820 8c45b500 80009718 80ac9248 80140f5c 00000000 8c031c00
5f20: 00000000 80ae9568 60000113 00000000 8fde12f3 8fde12eb 807aad64 8004d58c
5f40: 00000000 809c257c 00000006 00000006 80ae9550 00000109 00000006 80b4a000
5f60: 00000109 00000006 80b4a000 80b4a000 80ac9264 80a71dbc 00000006 00000006
5f80: 80a71594 80051c4c 00000000 80774ca4 00000000 00000000 00000000 00000000
5fa0: 00000000 80774cac 00000000 8000f528 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff
[<8057d468>] (caam_probe) from [<80387508>] (platform_drv_probe+0x44/0xac)
[<80387508>] (platform_drv_probe) from [<80385da4>] (driver_probe_device+0x174/0x2b4)
[<80385da4>] (driver_probe_device) from [<80385fb4>] (__driver_attach+0x8c/0x90)
[<80385fb4>] (__driver_attach) from [<80384430>] (bus_for_each_dev+0x68/0x9c)
[<80384430>] (bus_for_each_dev) from [<80385534>] (bus_add_driver+0x148/0x1f0)
[<80385534>] (bus_add_driver) from [<803865b4>] (driver_register+0x78/0xf8)
[<803865b4>] (driver_register) from [<80009718>] (do_one_initcall+0x8c/0x1d4)
[<80009718>] (do_one_initcall) from [<80a71dbc>] (kernel_init_freeable+0x144/0x1e4)
[<80a71dbc>] (kernel_init_freeable) from [<80774cac>] (kernel_init+0x8/0xe8)
[<80774cac>] (kernel_init) from [<8000f528>] (ret_from_fork+0x14/0x2c)
Code: eb00891d e3500000 0a0002f0 e59d3038 (e5936fa8)
---[ end trace 6bae7c20fe048c6c ]---
usb 1-1: new high-speed USB device number 2 using ci_hdrc
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SU08G 7.40 GiB
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

random: nonblocking pool is initialized
引起问题的模块也很清晰,为CAAM这个模块, 我们知道这个模块FSL是用于 AES等加解密相关的硬件模块。
在开箱中我们就先disable掉这个模块先用用。

在menuconfig中干掉这个模块后,我们继续重新编译启动,就可以启动起来了。

因为我要做的是使用蓝牙语音,因此,需要测试的USB,SD,wm8960.
不过在这些测试之前,需要先编译一个Yocto环境。 在编译好了之后,我们在下一篇继续。

以上是关于imx6ul蓝牙语音识别项目之1:硬件准备的主要内容,如果未能解决你的问题,请参考以下文章

imx6ul蓝牙语音识别项目之6:语音格式说明以及整合与实际效果演示

imx6ul蓝牙语音识别项目之6:语音格式说明以及整合与实际效果演示

imx6ul蓝牙语音识别项目之4:构建ARM Linux语音识别环境

imx6ul蓝牙语音识别项目之4:构建ARM Linux语音识别环境

imx6ul蓝牙语音识别项目之2: 添加蓝牙Controller支持

imx6ul蓝牙语音识别项目之2: 添加蓝牙Controller支持