前几天看了看4418的数据手册,现在准备开始裸机学习,友善的wiki自然是最好的选择吧,然而我就是弄不出,找了第三方的一篇微博,然后才迈出了第一步。

官方教程也非常简单,可是是我姿势不对,大家也可以看看

克隆Matrix配件代码仓库
  1. $ git clone https://github.com/friendlyarm/matrix.git
复制代码

 
编译测试程序
进入Matrix代码仓库,切换到nanopi2分支
  1. $ cd matrix$ git checkout nanopi2
复制代码

编译Matrix配件代码
  1. $ make CROSS_COMPILE=arm-linux- clean
  2. $ make CROSS_COMPILE=arm-linux-
  3. $ 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的文件系统上。
  1. $ cp modules /media/rootfs/ -r
  2. $ cp install/lib/* /media/rootfs/lib/ -d
  3. $ cp install/usr/bin/* /media/rootfs/usr/bin/
复制代码
这些我是都没有问题
将SD卡重新插入NanoPi 2,上电启动,在Debian的shell终端中执行以下命令加载硬件驱动。

  1. $ cd /modules$ insmod matrix_gpio_int.ko
复制代码

运行模块Matrix-Button的测试程序。
  1. $ 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,选择编辑:
 

最后,保存。打开串口,上电,出现如下字样:
 
原因来自第三方:
  1. SD卡地址偏移量0x200之前(也就是block0)是SD卡信息,不要修改,
  2. [0x200-0x400)是NSIH(iROM程序会识别的CPU配置信息和其他信息),
  3. [0x400-0x8000)是2ndboot.bin的所存放的地方,
  4. [0x8000-0x8200)是第二个NISH,
  5. 接下来的地方是uboot,不过我们不是去启动操作系统,而是跑裸机,所以没复制uboot部分。
  6. 为什么使用WinHex工具制作:用这个工具可以比较清晰知道各种文件实际存放的地址位置,更深入一点操作和体验。S5P4418的启动过程,我觉得挺适合初学者或对启动过程比较模糊的人。
复制代码

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐