发现网上经常有人问库的问题,下面说说我的理解,我做嵌入式也蛮久了,接触的构建也蛮多,也许我的观点能给大家一点借鉴。 什么是库?在我接触stm32之前,玩过lpc和s3c系列的arm,这些芯片,程序员编程的时候,很大精力都要用在操作寄存器上,而且还不能保证自己的操作是稳定及正确的。在保证对寄存器的操作正确之后,程序员才能将精力放在应用及系统之上,而应用和系统,对程序员而言,其意义往往大于对芯片本身寄存器的理解。因为,芯片只是工具,你理解了一个芯片的寄存器操作之后,玩一下个芯片,又需要重新去理解新芯片的寄存器操作。对于学习者而言,去学习寄存器是必要的,因为你要完成知识的积累(量变)。然而对于成熟的嵌入式工程师,都希望尽可能在芯片本身上花的时间少,因为他们希望产品开发周期尽可能短。成熟的嵌入式工程师,都会花大时间去研究应用和系统框架,因为这些东西可以用在任何一个芯片构架之上,是不变的(思维)。工具(芯片平台)不管如何换,都是万变不离其宗的--一个处理器而已。正因为出于这种考虑,st针对stm32芯片出了库,所谓的库,就是针对stm32这个芯片,将寄存器的操作都写成函数,提供函数API给程序员,并且可以保证这些函数的稳定性及正确性。程序员就会从操作寄存器这繁杂的工作中脱离出来。需要使用stm32某个模块时,只需要翻翻库的api调用方法,或者找找例程,就可以很轻松的用库里的函数(api)操作stm32的某个模块。就我而言,今年三月份之前,我还不知道stm32到底是个什么东西。现在呢,我已经在stm32上写了包括各种驱动例程和酷系统(Q-OS)在内的比较复杂的程序,可是对于stm32某个模块具体是如何操作寄存器的,我还真不知道,因为我一直是用库的。 现在很多学习者是本末倒置的,本来st出库,是为了解放程序员对寄存器的繁杂操作。可是现在没有经验的初学者,都拼命想去了解库是怎么实现的,是怎么操作寄存器的。有一种貌似要玩哪个模块,就必须懂得寄存器操作这样的观念等等。这些观念不能说是不正确的,因为我很能理解初学者对未知世界的探索欲。但是这样不讲究方法的学习,到最后得到的结果就是学习者四处碰壁,问又没人问,找答案又找不着,结果灰心丧气,打击了自信心,对嵌入式学习的动力也没有了。 我比较赞同的观点就是,对于一个只接触过单片机的初学者而言。不要再将学单片机的一套方法用在stm32上。初学者大可以放下心来,第一次学的时候,不去追求库的具体实现,不去过问如何操作寄存器,只是放心的调用库的api,相信库的可靠性(实际上它真的很可靠)。多研究下库里每个模块都有哪些api,api如何使用,有些什么参数,返回的是什么值等。我相信这是很简单的事情,因为很多api看名字就知道怎么用了,何况网上还有这么多例程和文档可以参考。然后组织这些api,写出你想要的有趣的应用,提升自己对嵌入式的兴趣,保障自己的信心。要记住,你第一遍是在享受库给你提供的快捷和方便!等你对stm32的每个模块都有了了解,第二次学的时候,因为有了全局观和信心,你再耐下心来,随便挑个模块研究下库的实现,研究如何操作寄存器,寄存器操作有什么技巧等等。我相信这个时候,难度已经大大降低了。 用我说的这种方法,层层深入,学会引导自己,才能够大大降低学习难度,让自己真的了解stm32是个什么东西。永远要记住,库和stm32以及其他芯片,都只不过是个工具而已,掌握工具是必须的,然而核心的关键的,是思维! 下面借这个机会向大家介绍一下我总结的“工具思维方法_论”,抛砖引玉,希望和大家交流! 这两年来,我接触的事物非常多,本来就是个闲不住的人,兴趣又广泛,精力无限。经历多了,自然感悟就多了,感悟多了,很多东西就看开了。今天我写在这里的,就是这几年以来,我所塑造的属于自己的人生哲学。我不清楚这一套方法理论是不是适合别人,但是就我而言,它已经能帮我解决生活中的所有事情,我希望看我文章的人,对自己的思维也能有相同的思考,或者从我的方法里能够得到借鉴。 在参看我的方法_论之前,如果你了解王阳明心学,那就更好了。我的方法_论,完全基于心学,是一个实践性扩充而已。 我从高中开始知事,懂得去努力争取自己想要的,那时的我,为了一所好大学而努力,去克服心中最原始的人性弱点,如懒惰、软弱、虚荣等。我当时虽然不知道像今天一样去引导自己,但是正是因为这种艰辛的环境,促成了我对自己情商最基本的认识,懂得去约束自己,为我未来的成功之路迈出了第一步。 在大学里,我跟很多人一样,想要实现自己的价值,想要自己赚钱养活自己。于是我做了很多事情,学生工作、家教、卖报纸、推销电话,只要是我想尝试的,我都努力去尝试。正因为这点点滴滴的遇事,让我开始懂得观察和思考,去探索自己最内心的思绪。 我大学的时候,在知识上完成了两次积累,一是对平面设计网页设计的知识积累,大概学了一年多的时间,曾一度希望靠做网站赚钱养活自己。二是对嵌入式的积累,在我接触单片机的那一瞬间,我就知道这辈子已经交给嵌入式了,而嵌入式,也必将成为我人生最重要的工具。因为这两次知识积累,我都是靠自学完成的,没有谁教我什么,一切都是靠自己摸索。所以深刻的相信,很多路,真的没人可以供你借鉴,只有靠你自己走,才能走出来。也正是这些学习经历,我开始懂得如何引导自己,我曾写过一篇《写在大学最后的一些话》(网址:http://www.q-sharewe.com/Qxw/viewtopic.php?f=6&t=9&sid=54a31ab3180fa8865c23330b22520ddf),就是讲述如何找到自己的兴趣,利用自己的兴趣去克服学习遇到的困难,去克服人性的弱点。 毕业之后,我也做过自己的产品,借此而创业,当然现实残酷的打击了我。我还换过好几份工作,结果发现都不是自己想要的工作。我曾一度迷茫,不知道未来会怎样,不知道中国是否有适合我的工作。我也一度很疯狂,拼命的学习新的东西,希望新的东西能够带给我更多的竞争力,让应聘单位知道我是一匹好马。我不断的反问着自己的人生,不断的思考,在这种基础下,两件事情改变了我。 第一件事情就是我看了一本书,叫《明朝那些事儿》,也许大多数人把这本书当小说看。但是我从来都是个喜欢多想的人,对于我而言,从这本书里感悟到的东西,远远比一本小说多。起码,我知道了王守仁,知道了心学,我才发现,我之前所总结的一切思想,原来是有依据的,原来也有人总结过(当然,我的总结比王守仁还差得很远,只能说我对自己的方法总结有向这个方向发展的趋势)。我开始成为一个唯心的人,我更加透彻的借助生活经历跟自己的内心对话。 第二件事情就是我开始炒股,从09年11月开始,我揣着自己的梦想和一万块钱进入二级市场,当然,我不是股神,现实也很残酷,虽然我小有自负,可是一万还是被我亏掉三千。现在也已经不记得当时的心痛,只不过我知道,我必须坚持。我曾不止一次的在自己写的东西里提到,促进事情成功的因素很多,可是决定成功的因素只有一个,就是坚持。当然,坚持也要有方法,我取出股市里的钱,告诉自己,如果不能将模拟股市中的十万变成十五万,就不再做实盘。于是在这样的环境下,我坚持认真对待自己的模拟盘,天天早上起来看新闻,每天花最少两个小时看盘。我跟一些老手聊天,他们说很难想象将虚拟盘看得和实盘一样,可是我做到了,它们在我看来是一样的。在我的坚持之下,我对股市的认识慢慢有了质的改变,更多的,我对自己人生的认识也有了质的改变。 我曾经在自己一系列的股市总结里提到,股市是人生的浓缩,做不好股市的人,人生也不会成功;人生成功的人,做股市也不会亏。我越来越发现股市和人生的共通:股市是赌,你每次下注,都不知道明天你的股票是跌是涨;人生之事也是赌,你永远不知道明天是加薪还是失业,你也不会知道你大学毕业后是得到什么或是感叹日子空虚。所不同的是,在股市里,你会拥有人性一切的弱点,只看虚幻的利而忽视风险。就是说,在股市里,你愿意下大筹码,去参与一个赢的概率小,但是赔率很大的赌局。而人生中,人显得更加理性,你愿意找一份安稳的工作,而不愿意去博一把,如创业,辞职再找更好的工作等等。相当于,在人生中,你愿意下小筹码,去参与一个赢的概率大,但是赔率比较小的赌局。 正是因为我人生的总总经历,加上当年明月对我的点拨,加上股市这场浓缩人生对我的摧残,加上嵌入式这项事业给我的实践机会,加上我自己勤于思考的习惯和我因为懒惰而学会引导自己的方法,让我终于有一天看通了所有的事情,让我完成了由量到质的蜕变。我发现,身边所有的所有,嵌入式,股市,工作,arm,开发环境,单片机,c语言,网页设计,google,淘宝,pcb,所有的所有,都只是工具而已,真正的核心,亘古不变的核心,只有一样,就是你的思维! Photoshop\Dreamware只是一个工具,你要做的第一件事就是用自己的方法去掌握这个工具,完成量的积累。当你掌握这些工具,你的思维,才是决定你是否能成为优秀设计师的本质。你是否在看到一个平面广告或者网页的时候,默默的思考其最吸引人的理念?你是否在画图之前,就已经确切的知道,你要传递给看图者的感觉、理念或者价值是什么?你是否有一个思维库,将别人好的观念都放进来,将错误的思想都打上禁止符? 单片机、arm、操作系统、库也只是一个工具,你要做的第一件事情就是用自己的方法去掌握这些工具,完成量的积累。当你掌握了这些工具,你的思维,决定了你是否有成为优秀开发者的潜质。当你接触了足够多的构架芯片或系统,完成质变,你会发现,你和今天的我一样,你看所有的处理器,都是一样的,都是执行指令。你看所有的协议,都是一样的,都是指定io在指定时间指定电平。你学新的库,学新的操作系统,学新的构架,你不会再害怕,不再急躁,你会按部就班,从易到难,步步为营;你会发现,原来觉得不够用的资料,现在信手沾来,原来到处都是;你会发现,你不再去强迫自己记枯燥的知识,而是把握最核心的思想;你会发现,你不会再将自己的竞争力放在多熟悉一种芯片上,也不会放在年轻,记忆上,而是放在随着时间增长,经验增长会导致越来越完善的思维上。你会更加关注精而不是多,你会更加相信踏实的重要性,你会更加善于引导自己,而不是跟自己做斗争。你会发现,很多道理真的很简单很简单。这些是什么,这些就是思维! 股市,也不过是一个工具,它让你懂得人生的本质,要想赢,你就必须去参与赢的概率大的赌局,根据自己的承受能力去下注。它让你懂得,要克服内心的恐惧与贪婪,只有用自信和满足。它让你懂得,在最不能忍受的时候,依然要坚持。股市和人生,完全想通。这些是什么,就是思维! 创业,也只不过是一个工具,你要懂得自己在创造什么价值,是否有人需要这种价值,你如何将价值传递出去。做什么产品,只不过是个价值载体--工具而已!有了策划方案,有了营销手段,把握了思维,你才能赢。资金?工具而已! 工具思维方法_论还有很多实践案例,人生之中所有的事情,都可以用这种论点来思考,来指导,有如下几点中心思想: 1.工具是死的,思维是活的,遇到问题,一定要记住,你是万能的人,你要想办法,不能坐以待毙。山越不过,就绕过!这是典型的知行合一思想。 2.永远不要参与输的概率大于赢的概率的赌局,否则你失败,你坚持不下去,就不能怪任何人! 3.量的积累是很漫长的,多思考,可以减少积累的时间。量的积累是很艰辛的,要学会引导自己,而不是跟自己做斗争,人性的弱点无法战胜,却可以引导。(目前酷学玩倡导的,就是以兴趣为引导,让学习者学习更持久)。 4.可以暂时性的只关注你需要的,屏蔽你不需要的。 5.要记住坚持的重要性,但是要讲究方法的坚持,死扛性质的坚持,得到的效果往往并不理想! 6.站在各种角度思考问题,如,站在对方的角度。 7.要做一个开拓者,有时不一定要走别人的路,完全可以自己走出一条路。不要鄙视别人,不要羡慕别人,每个人有自己的路! 8.有时慢比快好,当你有了全局观,有了思维,你可以从容不迫的去做事。 9.做快乐真实的自己! 今天写这个文章是一个引子,以后我会逐步提取自己的思维,希望能总结更多的东西供大家借鉴!欢迎大家和我交流关于知行合一和工具思维论的主题,qq58081686 .谢谢! By YuanYin |
RE:为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。
RE:为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。
RE:为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。
RE:为什么要用ST库,一个从业软件工程师如何看待库。借此机会讨论工具思维论。