近一个月以来,开始研究ARM,由于没有基础,所以一路下来,经历了千磨万炼,终于小有收获,特写此博客与人分享。
首先自己介绍一下,本人生物科学专业毕业,在校一直自学计算机编程,从Flash、网页、VB、Java,C语言算是大学的必修课咯。08年毕业后从事JavaEE开发,2010年转做JavaSE,从事Eclipse插件开发(也是自学的)。
之前没有电子电路基础,对PCB、串口、并口、电平这些概念还是一头雾水,就开始投入ARM的学习中。学习最重要的就是实践,所以立刻就买了一块FriendlyARM mini2440开发板,买了个嵌入式微型打印机(荣达)、二维码扫描器(矽感)、还有个SONY芯片的工业相机(加拿大PointGray),至于为什么买这些设备,恕不方便透露。两三天的时间,设备陆续买回来了,可一看到设备,就傻眼了,打印机和二维码扫描器的数据线接口怪模怪样的排线,打印机是10pin双排的串口,而扫描器是12pin很薄的卡式接头,电源和数据线在一起,可我的开发板上只有一个DB-9的串口和四个从DB-9引出的4pin的TTL电平串口。怎么办呢?网络呀!对!怎么把这茬忘了,于是到Q_Q群里问,关于电源怎么接呀,串口怎么接呀,但结果都不理想,唉,看来没办法了。还得靠自己。于是静下心来开始分析问题(心静很重要,当时遇到问题后在群里问的那会儿,别提有多急躁了)。
正所谓,求人不如求己,仔细阅读设备的用户手册,mini2440的用户手册,打印机的用户手册,扫描器的接线说明等等。可一骝下来,都是些电路图,还有些专业符号,看不懂,咋办?还好在群里有个叫"小树"的朋友,推荐我看看郭天祥的视频(在此非常感谢他,给了我指引了正确的方向)。于是乎,从verycd上down下视频,走马观花似的,花了两个晚上快速浏览了一遍,对PCB(印刷电路板)以及电路中的部分电子元件符号有了一定的了解(刚开始连PCB是什么都不知道),对正负极,GND(地线)有了新的认识。说说正负极的问题吧,根据高中的物理知识,一直以为电路要有正负极,这样才能构成一个回路。地线倒是听说过,可没听说电路板上还有地线呀,有一次在Q_Q群里问问题的时候,听到有人说地线就是负极,这下我就晕了,不光是地线,还有电压为负的呢!可以前没听说过呀,高中学的不是地线和正负极是分开的吗(可想我有多可爱了吧)?怎么?后来有人解释说地线就是电势为0的地方,当电路中有电势差时,电流就从电势高的一端流向低的一端,这样就形成了电流。哦!我恍然大悟!简直是一语道破天机呀!对于GND,广义上是地线,但是也分电源地和信号地,不过一般没有严格的区分。几天下来,收益良多,同时也感慨万千呀,总算能认得清电路图中的符号了。
手册是看了,光纸上谈兵是不能把电源和串口接上来的呀,于是,先上淘宝淘几样DIY必备宝贝,万用表(数字的)是少不了的,还有电烙铁、溶胶枪,螺丝刀套装(数字万用表和溶胶枪是我在我们公司里看到了才知道还有这玩意儿)加起来一百元不到,就搞定了。工具是有了,可线怎么接上去呢?排线接头都对不上来。于是想到找排线头,可哪里有呢?先到卖电脑配件,还有修手机的店里问了下,没有。于是Google,原来还有电子市场哦(又长了见识了),有个赛格电子市场,好家伙,于是查好路线,周末带好设备过去,配接头和接口,除了扫描器的排线头没配到,基本上都齐了,还买了些接电源用的线,排线,串口公母头,虽然东西不多,还花了我RMB30(感觉像是被宰了)。回到家就开始对着万用表说明书看看,插上电烙铁,对着手册的引脚定义,把打印机的10pin的串口排线的另一端焊上DB-9的串口接头。其实串口主要是两根线起作用,一根用来发信号(TXD),一根用来收信号(RXD),还有根地线(GND),其它的线都是起辅助作用,只要收发线接好就OK了。接着做电源线,没有卡线钳,还好有把镊子,虽然慢了点,而且不太好使,但做出来的效果跟用钳子做出来的一样漂亮(心里终于得到了一丝满足)。
mini2440开发板上提供了一个4pin电源接口,外侧2pin是正极,中间两pin是地线(也就是负极),外侧的两个正极中,一个是直接与外电路相通的,不通过开发板的电源开关的,只要板子通上电(不打开电源开关)就有电,另一个是经过板子的电源开关的,只有板子的电源打开才有电。线头做好后,插入接头。为打印机接上电源,看到打印机指示灯亮了,电路就通了,按照说明书做自检测打印,嘿!还真打印出字来了,搞定!不过还是怀疑串口是否接对了,可笔记本没串口(当初买笔记本的时候不知道DELL的家庭个人版和商务版有什么区别,现在终于懂了,原来个人版的机器没有串口和并口,只适合于家庭个人娱乐用,不适合做开发)!我的天!还好我淘了根USB转串口线,用超级终端连板子测试过,是没问题的。连打印机不知道行不行,于是下载了个串口调试助手——UARTAssit,按说明书的参数配置好后,向打印机发送数据,居然没反应,调试助手也卡住不动了,傻眼了。咦,公司的台式机好像有串口,嘿嘿,打了个如意算盘,于是第二天带着板子到公司里,连上串口用调试助手一测试,OK!终于松了口气了。
接下来的问题就是相机没有Linux驱动,咋办?凉拌?!于是Email给PointGray的技术支持,第一次用English写Email,自我感觉良好 ^_^,Email是晚上十一点多发的,一点左右就收到回信了,可能加拿大是白天,刚上班吧。技术支持建议用libdc1394这个软件包,可以在Linux下控制1394接口的相机。于是在虚拟机中装上Redhat9(虽然老了点,但是用习惯了),配置好VSFTP,下载libdc1394源代码编译安装,安装过程中好像没什么问题,发现源代码中有测试程序,运行一下helloword.a测试一下,居然报个错说什么初始化失败。这下就晕了呀,怎么办,Google呗!Goo了半天,终于找到了葵花宝典——"libdc1394-HOWTO.pdf",一看,不得了,原来内核中没有1394设备驱动,得要重新编译内核,于是,我便开始了漫长的内核升级之旅。内核升级详情,待续。
分享到:
相关推荐
总的来说,《KJava深入浅出——Java在PDA上的程序设计》这本书会引导读者从基础概念到实际开发,全面掌握在PDA上开发Java应用的各个环节,是Java ME开发者入门KJava不可或缺的参考资料。通过学习,开发者不仅能理解K...
Java基础入门篇主要涵盖了一系列关于Java编程语言的基础知识,包括JVM(Java虚拟机)、Java开发环境的搭建、Java的历史、特点、程序类型、垃圾收集器、J2SE的下载和安装,以及环境变量的配置和测试。此外,还会介绍...
- **参数映射**:MyBatis提供了参数映射机制,可以将Java对象的属性映射到SQL语句中的参数。 - **结果集映射**:支持将数据库查询结果映射为Java对象。 ### 6. JPA (Java Persistence API) JPA 是Java平台的标准...
以上是对“Java_Web快速入门——全十讲”的部分知识点进行了详细的总结,这些知识点涵盖了 Java Web 技术的基础概念、核心技术和实践应用,对于初学者来说是非常宝贵的参考资料。接下来的几讲会继续深入探讨更高级的...
Java自学之路——精华版 Java作为一种广泛使用的编程语言,对于初学者来说,有着丰富的资源和广阔的学习路径。本文将提供一份详细的自学指南,帮助你高效地掌握Java编程技能。 一、选择合适的自学资源 在开始Java...
### Android开发编程从入门到精通——Android程序员必备 #### 一、什么是Android及发展历程 - **定义**:Android是一种基于Linux内核的操作系统,主要用于移动设备如智能手机和平板电脑等。 - **历史背景**: - ...
总的来说,Java的学习涵盖了许多基础知识,从语言特性、版本分类到编译和运行机制,这些都是初学者需要掌握的关键知识点。深入理解和熟练运用这些概念,将有助于开发者编写出高效、安全且易于维护的Java应用程序。
《面向对象程序设计——JAVA.pdf》是一份...总的来说,这份资料为初学者提供了一个全面的Java入门指南,覆盖了从语言基础到实际开发环境配置的各个环节,对于想要学习Java编程的人来说,是一份非常有价值的参考资料。
本项目"战机逃亡"是针对JavaME平台设计的一款手机游戏,适合初学者入门实践。通过学习和分析这个项目,你可以了解到JavaME开发游戏的基本流程和核心技术。 【项目结构与文件解析】 压缩包中的"PlaneEscape2.5"很...
从Java的发展历程可以看出,Java从一个面向家用电器的分布式代码系统发展成为覆盖个人计算机、移动设备、嵌入式系统以及企业级应用的通用编程语言。Java的成功在于它的创新设计、广泛的产业支持和强大的开发者社区。...
### 真正的Java学习从入门到精通 #### 一、工具篇——JDK (Java Development Kit) **JDK**作为Java的核心组成部分,包含了Java运行环境(JRE)、一系列的Java工具以及基础的类库(rt.jar)。无论使用何种Java应用...
通过阅读《Java手机PDA程序设计入门——王森简体》,读者不仅可以学习到Java ME的基本知识和技术,还能了解到如何适应不同移动设备的特性进行开发,从而成为一名合格的移动应用开发者。无论是对Java感兴趣的学生,...
### Java基础入门教程知识点概述 #### 一、Java语言历史与发展背景 - **起源与初期目标**:Java语言起源于Sun公司的Green项目,最初的目的是为了开发一个分布式代码系统,以便能够控制家用电器并通过电子邮件与之...
本资料“Android编程快速入门——字节跳动”旨在帮助新手理解Android开发的基础概念,并提供实际操作的指导。 一、Android简介 Android是由Google领导的开放源代码操作系统,广泛应用于智能手机和平板电脑。它基于...
### 嵌入式数据库SQLite入门与分析 #### 一、SQLite简介 SQLite是一种轻量级的嵌入式关系型数据库管理系统,最初于2000年由D.Richard Hipp开发并发布。作为一种嵌入式数据库,SQLite与其他传统数据库管理系统(如...
本"Java基础入门教程"旨在为初学者提供一个全面且易懂的学习路径,帮助你快速理解和应用Java编程。 一、Java简介 Java是由Sun Microsystems公司(现已被Oracle收购)于1995年推出的,由James Gosling设计。它的设计...
Java Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式系统和移动设备,如早期的智能手机、电视盒和家用电器。本教程将带你逐步深入J2ME的世界,理解其基本概念、开发环境搭建、应用设计与实现,直至成为...