每一个学软件的最开始都是hello word !
学嵌入式的每一款处理器都是从GPIO,点灯开始的。。。原理使用都是一样一样的,无非就是寄存器多点而已,现在开始用汇编语言点灯,用C语言点灯,顺便学习启动文件,是怎么调用到main函数的,总体难度不大。。
啪啪打脸啊。。。虽然心里暗示是不错的,但是第一个小程序就出现了问题。
出现什么问题暂且不说,想要点灯要有开发板,我选择了韦东山老师的Jz2440,开发板用谁的其实都无所谓,我选择S3C2440来入门学习linux,主要是因为它的资料多,在加上韦东山老师详细的视频和强大的售后群,可以使崎岖之路平坦些(PS,不是做广告)。
对于每一个新手拿到新的开发板后,第一件事肯定就是想马上验证一下板子是否是好的,安装好各个驱动,然后按照烧写步骤将例子烧写进去看下状态。
那么问题来了。。。
感觉一切都理所应当的过程中出现了问题。。
再查看下载程序的各种方式的时候,就开始有点蒙圈了,各种下载方法,看的我一个晕,在加上各种启动方式,什么sdrom nandflash norflash,整的彻底蒙圈了。然后我选用j-link用j-flash工具下载bin文件到开发板。
Bin文件选用自带的文件肯定是可以执行的,结果却不能正常执行,问题出在哪呢,于是查看韦老师的资料,J-link只能将文件写入到NOR FLASH,要想下载到NAND FLASH要用到U-boot.到底是不是因为代码得从NAND FLASH才能启动呢,目前我知道的是,当开发板启动后,会将NAND FLASH前4k的内容,搬运到SDROM中,NoR FLASH是直接可以访问的,是这里没有匹配上导致的没法启动吗??
不管了,试一下吧,如果还是不行,只能采取最简单的办法,买openjlink了,但是以后都是用串口或者网络,貌似不大实用,不想买啊。。。。
擦,想用串口,安驱动也安不上。。。。。。。。只想感叹,自己动手了和看别人做完全不是一回事,学习之路平坦些吧。。。(原来是线坏了,还好线多)
这块板卡的资料给的太多了,导致有很多重复的,顿时眼花缭乱,不知道该怎么整了,我只是想点个灯而已啊。韦老师写的裸机程序是通过nandflash启动的(我是这么理解的),其实在哪启动都无所谓啦,但是作为新手来说,不知道怎么更改。所以选择不改代码,选择一种下载方式,将代码下到nandflash..最后选择,u-boot+dnw,方式,先将u-boot下载到了norFlash,然后按照给的说明进行启动,首次需要安装DNW驱动,开始不知道,原来是串口工具和DNW配合使用的。都安装好后就可以按照步骤,把程序下载到nandflash了,下载好程序后,选择nandflash启动,却没有按照预想的启动,欧码噶,为啥。。。。。然后再次使用串口启动,突然有了新发现,选择nandflash启动,居然有选项,而且还可以键盘控制LCD画图。
。。。。
突然恍然大悟,原来nandflash里面有程序,我自己下进去的程序压根就没起作用。这下确定了板卡肯定是好的,只要我把nandflash格式化一下,再下进程序肯定就可以了。
果然。。。。。。下载进行后,小灯正常启动了。。。
我擦!一个简单的流程就这么生生的整了好长时间,明白了开发流程,在写代码就简单了,和单片机程序没有太大区别。
在这个过程中,有几点疑惑,希望随着后期的学习,能够理解透彻
1.程序为啥在nandflash里面能正常启动,而在norFlash里面不可以。应该无差
别啊,难道就是因为 当开发板启动后,会将NAND FLASH前4k的内容,
搬运到SDROM中,而NoR FLASH是直接可以访问的??
2.j-link为什么不能下载程序到nandflash,为啥开发者不添加上呢?
不管了,下节实际用汇编和c程序点亮小灯,顺便熟悉一下makefile和启动文件的启动流程。
以上均为自己的学习过程和感悟,如有不对请见谅。
学嵌入式的每一款处理器都是从GPIO,点灯开始的。。。原理使用都是一样一样的,无非就是寄存器多点而已,现在开始用汇编语言点灯,用C语言点灯,顺便学习启动文件,是怎么调用到main函数的,总体难度不大。。
啪啪打脸啊。。。虽然心里暗示是不错的,但是第一个小程序就出现了问题。
出现什么问题暂且不说,想要点灯要有开发板,我选择了韦东山老师的Jz2440,开发板用谁的其实都无所谓,我选择S3C2440来入门学习linux,主要是因为它的资料多,在加上韦东山老师详细的视频和强大的售后群,可以使崎岖之路平坦些(PS,不是做广告)。
对于每一个新手拿到新的开发板后,第一件事肯定就是想马上验证一下板子是否是好的,安装好各个驱动,然后按照烧写步骤将例子烧写进去看下状态。
那么问题来了。。。
感觉一切都理所应当的过程中出现了问题。。
再查看下载程序的各种方式的时候,就开始有点蒙圈了,各种下载方法,看的我一个晕,在加上各种启动方式,什么sdrom nandflash norflash,整的彻底蒙圈了。然后我选用j-link用j-flash工具下载bin文件到开发板。
Bin文件选用自带的文件肯定是可以执行的,结果却不能正常执行,问题出在哪呢,于是查看韦老师的资料,J-link只能将文件写入到NOR FLASH,要想下载到NAND FLASH要用到U-boot.到底是不是因为代码得从NAND FLASH才能启动呢,目前我知道的是,当开发板启动后,会将NAND FLASH前4k的内容,搬运到SDROM中,NoR FLASH是直接可以访问的,是这里没有匹配上导致的没法启动吗??
不管了,试一下吧,如果还是不行,只能采取最简单的办法,买openjlink了,但是以后都是用串口或者网络,貌似不大实用,不想买啊。。。。
擦,想用串口,安驱动也安不上。。。。。。。。只想感叹,自己动手了和看别人做完全不是一回事,学习之路平坦些吧。。。(原来是线坏了,还好线多)
这块板卡的资料给的太多了,导致有很多重复的,顿时眼花缭乱,不知道该怎么整了,我只是想点个灯而已啊。韦老师写的裸机程序是通过nandflash启动的(我是这么理解的),其实在哪启动都无所谓啦,但是作为新手来说,不知道怎么更改。所以选择不改代码,选择一种下载方式,将代码下到nandflash..最后选择,u-boot+dnw,方式,先将u-boot下载到了norFlash,然后按照给的说明进行启动,首次需要安装DNW驱动,开始不知道,原来是串口工具和DNW配合使用的。都安装好后就可以按照步骤,把程序下载到nandflash了,下载好程序后,选择nandflash启动,却没有按照预想的启动,欧码噶,为啥。。。。。然后再次使用串口启动,突然有了新发现,选择nandflash启动,居然有选项,而且还可以键盘控制LCD画图。
。。。。
突然恍然大悟,原来nandflash里面有程序,我自己下进去的程序压根就没起作用。这下确定了板卡肯定是好的,只要我把nandflash格式化一下,再下进程序肯定就可以了。
果然。。。。。。下载进行后,小灯正常启动了。。。
我擦!一个简单的流程就这么生生的整了好长时间,明白了开发流程,在写代码就简单了,和单片机程序没有太大区别。
在这个过程中,有几点疑惑,希望随着后期的学习,能够理解透彻
1.程序为啥在nandflash里面能正常启动,而在norFlash里面不可以。应该无差
别啊,难道就是因为 当开发板启动后,会将NAND FLASH前4k的内容,
搬运到SDROM中,而NoR FLASH是直接可以访问的??
2.j-link为什么不能下载程序到nandflash,为啥开发者不添加上呢?
不管了,下节实际用汇编和c程序点亮小灯,顺便熟悉一下makefile和启动文件的启动流程。
以上均为自己的学习过程和感悟,如有不对请见谅。