u****h 发帖数: 2193 | 1 我是纯CS背景,平时写点general programming,在PC上跑的都还没问题,最近由于工
作原因不得不学习一点embedded programming,感觉简直难透了,各种开发工具用的代
码截然不同,各种register简直把头都绕晕了。
我就言归正传把,
我现在得在FRDM-KL05Z,现在用的IDE是keil。从网页上下载了样例标程,在努力学习
中。 问题在于:
1)这样例标程根本就不知道在做什么。虽然里面也有注释,但是很难看懂,不知道哪
个channel是做什么的,哪个register是做什么的。一大堆的mask, bitwise运算。
2) 最困扰我的是,似乎对应每个IDE写的程序都非常不一样。比如我看到了这个网站
(虽然用的版不一样,不过应该差不多)用CodeWarrior写的程序,就比keil的好像要
简单好多。为什么呢?我一直理解这些IDE就是得用来写程序的,但是似乎他们背后还
做了很多代码生成的东西?
https://github.com/ErichStyger/mcuoneclipse/tree/master/Examples/FRDM-KL25Z/
Freedom_DAC
3)有没有什么step by step的,针对这个版的教程呢?最好的学习办法是什么呢?
我觉得我最大的问题是,我在看了data sheet和reference manual之后,其实程序能懂
个大概80%。但是让我做一个新的东西,我根本不知道从哪里开始。 根本没信心去调试
。
多谢了!!EE好难,唉。 |
b******d 发帖数: 2495 | 2 看起来EE觉得理所当然的东西,CS的人觉得很难?
这些register和channel的东西,EE的人都觉得很简单,还觉得别人看得也很简单。所
以就不认为有啥了不起的。还是这位CS的觉得我们EE的太可怜了,安慰下我们。
【在 u****h 的大作中提到】 : 我是纯CS背景,平时写点general programming,在PC上跑的都还没问题,最近由于工 : 作原因不得不学习一点embedded programming,感觉简直难透了,各种开发工具用的代 : 码截然不同,各种register简直把头都绕晕了。 : 我就言归正传把, : 我现在得在FRDM-KL05Z,现在用的IDE是keil。从网页上下载了样例标程,在努力学习 : 中。 问题在于: : 1)这样例标程根本就不知道在做什么。虽然里面也有注释,但是很难看懂,不知道哪 : 个channel是做什么的,哪个register是做什么的。一大堆的mask, bitwise运算。 : 2) 最困扰我的是,似乎对应每个IDE写的程序都非常不一样。比如我看到了这个网站 : (虽然用的版不一样,不过应该差不多)用CodeWarrior写的程序,就比keil的好像要
|
F********g 发帖数: 475 | |
u****h 发帖数: 2193 | 4 您不要说风凉话,能指导一下吗? 我是连门都没入。
【在 b******d 的大作中提到】 : 看起来EE觉得理所当然的东西,CS的人觉得很难? : 这些register和channel的东西,EE的人都觉得很简单,还觉得别人看得也很简单。所 : 以就不认为有啥了不起的。还是这位CS的觉得我们EE的太可怜了,安慰下我们。
|
u****h 发帖数: 2193 | 5 我觉得我最大的问题是,我在看了data sheet和reference manual之后,其实程序能懂
个大概80%。但是让我做一个新的东西,我根本不知道从哪里开始。 根本没信心去调试
。
我还是希望能有一个step by step的教程。。。
【在 F********g 的大作中提到】 : 看Data sheets
|
b******d 发帖数: 2495 | 6 这有啥可指导的,我每天在公司看的就是这些东西,看的多了。都差不多啊。另外寄存
器这些东西,计算机里面不都有吗?EE的寄存器比计算机里面的简单多了吧。
看多了就熟了。我也不懂JAVA。问cS的人也没法问啊。
【在 u****h 的大作中提到】 : 您不要说风凉话,能指导一下吗? 我是连门都没入。
|
F********g 发帖数: 475 | |
g******u 发帖数: 3060 | 8 embedded说实话非常蠢, 再有经验的人碰到任何产品还得从头开始写,定义一个个IO,
register, clock....浪费时间得很. |
u****h 发帖数: 2193 | 9 但是这个不是microchip的。。能一样吗?
【在 F********g 的大作中提到】 : http://www.amazon.com/dp/1856178706/ref=as_li_tf_til?tag=lertop : Microchip的板子。
|
i*****t 发帖数: 24265 | 10 那些register实际就是操作硬件和资源,具体实现一个任务有很多方案,示例代码也不
难,其实就是如何操作那些东西实质根据手册,建议用底层那种C开始做,包括汇编
【在 u****h 的大作中提到】 : 我是纯CS背景,平时写点general programming,在PC上跑的都还没问题,最近由于工 : 作原因不得不学习一点embedded programming,感觉简直难透了,各种开发工具用的代 : 码截然不同,各种register简直把头都绕晕了。 : 我就言归正传把, : 我现在得在FRDM-KL05Z,现在用的IDE是keil。从网页上下载了样例标程,在努力学习 : 中。 问题在于: : 1)这样例标程根本就不知道在做什么。虽然里面也有注释,但是很难看懂,不知道哪 : 个channel是做什么的,哪个register是做什么的。一大堆的mask, bitwise运算。 : 2) 最困扰我的是,似乎对应每个IDE写的程序都非常不一样。比如我看到了这个网站 : (虽然用的版不一样,不过应该差不多)用CodeWarrior写的程序,就比keil的好像要
|
|
|
n******e 发帖数: 1046 | 11 嵌入式软件主要就是时序控制,控制寄存器,地址空间映射,多看看芯片timing就会好
很多.芯片内部也都是一个个core块搭起来的,就是时序和逻辑来相互控制的。跟你们
CS的条件语句和运算也差不多。
【在 u****h 的大作中提到】 : 我是纯CS背景,平时写点general programming,在PC上跑的都还没问题,最近由于工 : 作原因不得不学习一点embedded programming,感觉简直难透了,各种开发工具用的代 : 码截然不同,各种register简直把头都绕晕了。 : 我就言归正传把, : 我现在得在FRDM-KL05Z,现在用的IDE是keil。从网页上下载了样例标程,在努力学习 : 中。 问题在于: : 1)这样例标程根本就不知道在做什么。虽然里面也有注释,但是很难看懂,不知道哪 : 个channel是做什么的,哪个register是做什么的。一大堆的mask, bitwise运算。 : 2) 最困扰我的是,似乎对应每个IDE写的程序都非常不一样。比如我看到了这个网站 : (虽然用的版不一样,不过应该差不多)用CodeWarrior写的程序,就比keil的好像要
|
d****i 发帖数: 4809 | 12 embedded的东西对纯CS软件背景的人是比较难的,对底层的硬件和软件都要搞明白,各
种接口,CPU架构,时序逻辑,操作系统,除了C, 还要懂一些汇编,知识点很多,基本
上你能够build一个原型出来就是一个圣人了。
【在 u****h 的大作中提到】 : 我是纯CS背景,平时写点general programming,在PC上跑的都还没问题,最近由于工 : 作原因不得不学习一点embedded programming,感觉简直难透了,各种开发工具用的代 : 码截然不同,各种register简直把头都绕晕了。 : 我就言归正传把, : 我现在得在FRDM-KL05Z,现在用的IDE是keil。从网页上下载了样例标程,在努力学习 : 中。 问题在于: : 1)这样例标程根本就不知道在做什么。虽然里面也有注释,但是很难看懂,不知道哪 : 个channel是做什么的,哪个register是做什么的。一大堆的mask, bitwise运算。 : 2) 最困扰我的是,似乎对应每个IDE写的程序都非常不一样。比如我看到了这个网站 : (虽然用的版不一样,不过应该差不多)用CodeWarrior写的程序,就比keil的好像要
|
d****i 发帖数: 4809 | 13 出了问题,你还要找出到底是hardware, software, 还是firmware的问题,比在
desktop上写general programming难多了。
【在 d****i 的大作中提到】 : embedded的东西对纯CS软件背景的人是比较难的,对底层的硬件和软件都要搞明白,各 : 种接口,CPU架构,时序逻辑,操作系统,除了C, 还要懂一些汇编,知识点很多,基本 : 上你能够build一个原型出来就是一个圣人了。
|
F********g 发帖数: 475 | 14 你不是要step by step吗,找块板子不就行了。
弄熟了bring up都差不多。
【在 u****h 的大作中提到】 : 但是这个不是microchip的。。能一样吗?
|
F********g 发帖数: 475 | 15 你这问题很有意思,一般搞点 dsp的有点trade secret的外包就是自掘坟墓。
我以前工作的公司中国的仿制品长相都一样,但没啥威胁。 |
l*********o 发帖数: 3091 | 16 网上搜FRDM-KL05Z的sample code,自己改改就行了。 以前有个Google code search挺
好用,现在没有了。
【在 u****h 的大作中提到】 : 我是纯CS背景,平时写点general programming,在PC上跑的都还没问题,最近由于工 : 作原因不得不学习一点embedded programming,感觉简直难透了,各种开发工具用的代 : 码截然不同,各种register简直把头都绕晕了。 : 我就言归正传把, : 我现在得在FRDM-KL05Z,现在用的IDE是keil。从网页上下载了样例标程,在努力学习 : 中。 问题在于: : 1)这样例标程根本就不知道在做什么。虽然里面也有注释,但是很难看懂,不知道哪 : 个channel是做什么的,哪个register是做什么的。一大堆的mask, bitwise运算。 : 2) 最困扰我的是,似乎对应每个IDE写的程序都非常不一样。比如我看到了这个网站 : (虽然用的版不一样,不过应该差不多)用CodeWarrior写的程序,就比keil的好像要
|
F********g 发帖数: 475 | 17 这些都不难。
+ 能搭fPGA prototype
+ 简单layout
+ 简单dsp
+ 简单模电设计
你能折腾出个working prototype就牛了。
【在 d****i 的大作中提到】 : embedded的东西对纯CS软件背景的人是比较难的,对底层的硬件和软件都要搞明白,各 : 种接口,CPU架构,时序逻辑,操作系统,除了C, 还要懂一些汇编,知识点很多,基本 : 上你能够build一个原型出来就是一个圣人了。
|
u****h 发帖数: 2193 | 18 这个timing是什么意思阿?
【在 n******e 的大作中提到】 : 嵌入式软件主要就是时序控制,控制寄存器,地址空间映射,多看看芯片timing就会好 : 很多.芯片内部也都是一个个core块搭起来的,就是时序和逻辑来相互控制的。跟你们 : CS的条件语句和运算也差不多。
|
i*****t 发帖数: 24265 | 19 不懂硬件的话恐怕很难,而且很多都是软件+硬件经验积累,否则一个小小bug就能折腾
很久,烧片子还不说,稳定性还不说。
搞纯软件多好,到处都要,而且能速成,非要弄自己不精通的干啥呢。
【在 u****h 的大作中提到】 : 这个timing是什么意思阿?
|
u****h 发帖数: 2193 | 20 这个是种种原因,不得不做的。您能指教一下吗?我就像具体问一下,大家说的这个
timing是什么东西?
【在 i*****t 的大作中提到】 : 不懂硬件的话恐怕很难,而且很多都是软件+硬件经验积累,否则一个小小bug就能折腾 : 很久,烧片子还不说,稳定性还不说。 : 搞纯软件多好,到处都要,而且能速成,非要弄自己不精通的干啥呢。
|
|
|
F********g 发帖数: 475 | 21 ...setup time, hold time...
学过数电吗 |
p******a 发帖数: 130 | 22 芯片手册上的时序图。
【在 u****h 的大作中提到】 : 这个是种种原因,不得不做的。您能指教一下吗?我就像具体问一下,大家说的这个 : timing是什么东西?
|
u****h 发帖数: 2193 | 23 没有,唉。
您能把这个embedded programming所有的pre-requisite都列出来吗?
【在 F********g 的大作中提到】 : ...setup time, hold time... : 学过数电吗
|
n******e 发帖数: 1046 | 24 就是时序啊,芯片工作都是有严格时序要求的啊,各种接口都有clk,各种读写,清零,
各种控制线,再来个同步异步,各种寄存器和memory,再加点什么 PHY,够你折腾好久
了你拿你们公司一个主芯片,先看datasheet,就能明白很多东西了。
现在知道EE的痛苦了吧
【在 u****h 的大作中提到】 : 这个timing是什么意思阿?
|
a****l 发帖数: 8211 | 25 光看datasheet是非常简单的了,最头疼的是各种芯片的bug.
【在 n******e 的大作中提到】 : 就是时序啊,芯片工作都是有严格时序要求的啊,各种接口都有clk,各种读写,清零, : 各种控制线,再来个同步异步,各种寄存器和memory,再加点什么 PHY,够你折腾好久 : 了你拿你们公司一个主芯片,先看datasheet,就能明白很多东西了。 : 现在知道EE的痛苦了吧
|
n******e 发帖数: 1046 | 26 肯定有,芯片设计公司有些芯片BUG就是后来软件测试的时候才发现的,通过配置寄存
器读写发现不是那么回事的。
【在 a****l 的大作中提到】 : 光看datasheet是非常简单的了,最头疼的是各种芯片的bug.
|
d*****l 发帖数: 8441 | 27 主要是片子的结构和接口不熟悉吧,这个没有办法,要硬啃接口、芯片管脚(包括时序)
和芯片内部构架的手册,搞熟悉了就容易了。好多寄存器字节的含义需要查手册才知道,
没办法。比Java蠢多了。
【在 u****h 的大作中提到】 : 我觉得我最大的问题是,我在看了data sheet和reference manual之后,其实程序能懂 : 个大概80%。但是让我做一个新的东西,我根本不知道从哪里开始。 根本没信心去调试 : 。 : 我还是希望能有一个step by step的教程。。。
|
d***a 发帖数: 13752 | 28 现在的CS越来越偏软件了。以前的CS不是这样的,数电,最基本的模电,汇编语言编程
,机器语言编程,CPU设计,I/O接口设计,这样一套学下来,做embedded programming
不会觉得难。
如果有写OS kernel经验,用register和bit masking也应该没有问题的。
楼主也不用太担心,embedded programming不难学。我个人觉得要注意几点,一是要有
一套实际的硬件(要支持source-level debugging的)。二是做一些小的project,要
把程序运行起来并调试正确。再就是要有耐心,不要怕烦。
【在 u****h 的大作中提到】 : 没有,唉。 : 您能把这个embedded programming所有的pre-requisite都列出来吗?
|
i*****t 发帖数: 24265 | 29 直接java完事,省时省心,何苦弄embeded这玩意呢? |
i*****t 发帖数: 24265 | 30 搞java没事喝咖啡,几行代码解决问题
搞单片的没事闻松香和器件烧毁味道,又苦又累,为了一个bug,熬夜甚至寝食难安
看来
一个是白领,一个是蓝领 |
|
|
g****t 发帖数: 31659 | 31 数电没学过,不可能搞清楚这些的.
【在 u****h 的大作中提到】 : 没有,唉。 : 您能把这个embedded programming所有的pre-requisite都列出来吗?
|
u****h 发帖数: 2193 | 32 多谢各位指教, 我刚刚发现一个厂商提供的软件可以自动为许多组件生成代码, 学起来
容易多了. 虽然我还是有很多需要学习的地方.
我算是这里的新人, 不知道这里EE和CS之间的瑜亮之争是怎么产生的. 这短短的三十个
回帖里面就有好多或认真或玩笑,或抱怨或作弄CS的回帖, 跟主题毫无关系的java也中
了好几枪. 但是同时也有好多ID很认真地给我指出了方向, 我真心感激.
我只想说我在一家小公司, 有时候工作要求就是啥事情都得做一点. 我确实在工作中遇
到了这个问题, 诚心地需要解决, 所以很诚恳地向大家求教. 我根本没有兴趣去挖一个
EE vs CS的坑.
我没有正式地上过各种各样的先修课, 基础很差, 也没人帮忙, 就连个点个LED都没有
谁能帮我trouble shoot. 这里都是高手, 可能已经不记得当初刚上手的时候的绝望的
感觉, 或者一门一门课地上下来的时候就根本就没经历过这种感觉.
我只能说我悟性不高. 今后还会有很多各种各样的问题, 希望大家能放下EE与CS之间的
无聊的争论, 在不打扰各位太多时间的情况下, 给一个新手一点入门上的指导. 多谢各
位海涵. |
d***a 发帖数: 13752 | 33 你别太在意,其实楼上说的多数是有用的信息。数电是嵌入式系统的基础之一,理解时
序很重要。Java在微控器中用得少,而Java好学又能赚大钱... 学嵌入式编程,是吃力
不讨好的事。 :-)
【在 u****h 的大作中提到】 : 多谢各位指教, 我刚刚发现一个厂商提供的软件可以自动为许多组件生成代码, 学起来 : 容易多了. 虽然我还是有很多需要学习的地方. : 我算是这里的新人, 不知道这里EE和CS之间的瑜亮之争是怎么产生的. 这短短的三十个 : 回帖里面就有好多或认真或玩笑,或抱怨或作弄CS的回帖, 跟主题毫无关系的java也中 : 了好几枪. 但是同时也有好多ID很认真地给我指出了方向, 我真心感激. : 我只想说我在一家小公司, 有时候工作要求就是啥事情都得做一点. 我确实在工作中遇 : 到了这个问题, 诚心地需要解决, 所以很诚恳地向大家求教. 我根本没有兴趣去挖一个 : EE vs CS的坑. : 我没有正式地上过各种各样的先修课, 基础很差, 也没人帮忙, 就连个点个LED都没有 : 谁能帮我trouble shoot. 这里都是高手, 可能已经不记得当初刚上手的时候的绝望的
|
a****l 发帖数: 8211 | 34 还有要冒着ic在你面前爆炸的危险。
【在 i*****t 的大作中提到】 : 搞java没事喝咖啡,几行代码解决问题 : 搞单片的没事闻松香和器件烧毁味道,又苦又累,为了一个bug,熬夜甚至寝食难安 : 看来 : 一个是白领,一个是蓝领
|
p******a 发帖数: 130 | 35 万事开头难。嵌入式开发的知识很琐碎,搂主结合实际的project边做边学,不明白的
地方多看书多问,慢慢也就成了高手。
【在 u****h 的大作中提到】 : 多谢各位指教, 我刚刚发现一个厂商提供的软件可以自动为许多组件生成代码, 学起来 : 容易多了. 虽然我还是有很多需要学习的地方. : 我算是这里的新人, 不知道这里EE和CS之间的瑜亮之争是怎么产生的. 这短短的三十个 : 回帖里面就有好多或认真或玩笑,或抱怨或作弄CS的回帖, 跟主题毫无关系的java也中 : 了好几枪. 但是同时也有好多ID很认真地给我指出了方向, 我真心感激. : 我只想说我在一家小公司, 有时候工作要求就是啥事情都得做一点. 我确实在工作中遇 : 到了这个问题, 诚心地需要解决, 所以很诚恳地向大家求教. 我根本没有兴趣去挖一个 : EE vs CS的坑. : 我没有正式地上过各种各样的先修课, 基础很差, 也没人帮忙, 就连个点个LED都没有 : 谁能帮我trouble shoot. 这里都是高手, 可能已经不记得当初刚上手的时候的绝望的
|
i*****t 发帖数: 24265 | 36 说起硬件,自己面前爆炸还算好,别人面前爆炸就危险了,记得以前一次电容爆炸,立
刻火球起来,如果当时没人立刻熄灭之就完了,另一次二极管击穿,立刻冒烟,电路板
立刻糊了,糊味弥久不散,这些还是低压电器,如果高压的更加危险了
搞硬件的如果没有一定应急和心理素质,还真挺危险
【在 a****l 的大作中提到】 : 还有要冒着ic在你面前爆炸的危险。
|
i*****t 发帖数: 24265 | 37 既然有cs背景,那么就搞那种纯软件的embedded吧,例如进程线程算法优化协议栈啥的
,把底册接口给硬件的人去搞就行了 |
p*l 发帖数: 1359 | 38 timing对硬件编程的重要性,就好像软件的数据结构,一两句话说不清楚。不要生气,
你如果到CS版去问数据结构是什么,想想会有啥反响吧!
【在 u****h 的大作中提到】 : 这个是种种原因,不得不做的。您能指教一下吗?我就像具体问一下,大家说的这个 : timing是什么东西?
|
r****o 发帖数: 1950 | 39 EE里面的寄存器和CS里面的难道还不一样吗?
【在 b******d 的大作中提到】 : 这有啥可指导的,我每天在公司看的就是这些东西,看的多了。都差不多啊。另外寄存 : 器这些东西,计算机里面不都有吗?EE的寄存器比计算机里面的简单多了吧。 : 看多了就熟了。我也不懂JAVA。问cS的人也没法问啊。
|
i*****t 发帖数: 24265 | 40 不一样,前者是依赖硬件,后者脱离硬件了已经,直接是一种数据结构的概念
【在 r****o 的大作中提到】 : EE里面的寄存器和CS里面的难道还不一样吗?
|
|
|
F********g 发帖数: 475 | 41 不清楚你用的PROCESSOR,DSPIC的看APP NOTES学起来很快。
+U。
【在 u****h 的大作中提到】 : 多谢各位指教, 我刚刚发现一个厂商提供的软件可以自动为许多组件生成代码, 学起来 : 容易多了. 虽然我还是有很多需要学习的地方. : 我算是这里的新人, 不知道这里EE和CS之间的瑜亮之争是怎么产生的. 这短短的三十个 : 回帖里面就有好多或认真或玩笑,或抱怨或作弄CS的回帖, 跟主题毫无关系的java也中 : 了好几枪. 但是同时也有好多ID很认真地给我指出了方向, 我真心感激. : 我只想说我在一家小公司, 有时候工作要求就是啥事情都得做一点. 我确实在工作中遇 : 到了这个问题, 诚心地需要解决, 所以很诚恳地向大家求教. 我根本没有兴趣去挖一个 : EE vs CS的坑. : 我没有正式地上过各种各样的先修课, 基础很差, 也没人帮忙, 就连个点个LED都没有 : 谁能帮我trouble shoot. 这里都是高手, 可能已经不记得当初刚上手的时候的绝望的
|
S*********n 发帖数: 895 | 42 yeah, hard time can be frustrating sometime. but once you made something
work, the felling is very good
keep trying! |