前几天看了看4418的数据手册,现在准备开始裸机学习,友善的wiki自然是最好的选择吧,然而我就是弄不出,找了第三方的一篇微博,然后才迈出了第一步。
官方教程也非常简单,可是是我姿势不对,大家也可以看看
克隆Matrix配件代码仓库
-
$ git clone https://github.com/friendlyARM/matrix.git
编译测试程序
进入Matrix代码仓库,切换到nanopi2分支
-
$ cd matrix$ git checkout nanopi2
编译Matrix配件代码
-
$ make CROSS_COMPILE=arm-linux- clean $ make CROSS_COMPILE=arm-linux- $ make CROSS_COMPILE=arm-linux- install
注意:请确保你的主机PC当前使用的交叉编译器为NanoPi 2配套的arm-linux-gcc-4.9.3。
编译成功后库文件位于install/lib目录下,而测试程序则位于install/usr/bin目录下,模块Matrix-Button对应的测试程序为matrix-button。
运行测试程序
将带有Debian系统的SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs分区。
假设rootfs分区的挂载路径为/media/rootfs,执行以下命令将Matrix的硬件驱动、库文件和测试程序拷贝到NanoPi 2的文件系统上。
-
$ cp modules /media/rootfs/ -r $ cp install/lib/* /media/rootfs/lib/ -d $ cp install/usr/bin/* /media/rootfs/usr/bin/
这些我是都没有问题
将SD卡重新插入NanoPi 2,上电启动,在Debian的shell终端中执行以下命令加载硬件驱动。
-
$ cd /modules$ insmod matrix_gpio_int.ko
运行模块Matrix-Button的测试程序。
-
$ matrix-button
第一遍试,command not found
回去翻了翻输入过的命令,发现cp时多了个空格,然后我再把空格删了重新copy一遍,但这次说 什么什么太短了? 不太记得了,忘记截图了。我想是不是可能之前命令误操作了,于是格了重刷系统。这次连cp时都出现了错误,未找到此目录,我看了一下,原来的rootfs变成了rootfs_,我改了之后又烧写一遍,依旧不可以……
刚好我也看到一篇文章,http://weibo.com/p/1001603914482173772682 ,感觉写的不错,友善的微博也转过,于是先把sd卡用SDFormat 工作彻底格式化,再把友善给的nanopi2-debian-sd4g-wifiap.img中的0x200-0x8200的内容拷贝到sd卡中:
打开sd卡:
这个是友善的img文件
alt+G定位到0x200位置,右击,选块起始:
再定位到0x8200位置,选择 选块结束。
右击-编辑-复制选块-十六进制数值:
切换到sd卡页面,定位到0x200,选择编辑:
最后,保存。打开串口,上电,出现如下字样:
原因来自第三方:
-
SD卡地址偏移量0x200之前(也就是block0)是SD卡信息,不要修改, [0x200-0x400)是NSIH(iROM程序会识别的CPU配置信息和其他信息), [0x400-0x8000)是2ndboot.bin的所存放的地方, [0x8000-0x8200)是第二个NISH, 接下来的地方是uboot,不过我们不是去启动操作系统,而是跑裸机,所以没复制uboot部分。 为什么使用WinHex工具制作:用这个工具可以比较清晰知道各种文件实际存放的地址位置,更深入一点操作和体验。S5P4418的启动过程,我觉得挺适合初学者或对启动过程比较模糊的人。