今天在学习C8051F34X的程序开发,出现了一个问题,让我琢磨了半天!
要做一个东西,需要用到这款芯片,买回来刚开始学习,入门。自己一步一步搭建好平台,然后创建了工程,把源码拷进去(现在还不会嘛,只能拷贝),编译没错,下载运行,结果就是出不来结果。
我拷贝的是给的源码啊,所有文件都有,软件的配置也一样,表面上看和例子一模一样,怎么就没结果。找差别找了老半天。结果在给的用户手册的最后,看到一句话,说在startup文件中,将看门狗关闭了。我一看,两个工程中的startup文件果然不同,一个204行,一个199行,呵呵,我就又拷贝了过来,编译、下载运行,结果就出来了。。。
我看这个startup文件,里面使用汇编写的代码,这时我突然想起了一个问题,之前学单片机的时候老师会为自己:直接用C编写程序就行了,问什么还花很大时间将汇编,C只是提一下呢。结合以前浏览过的资料,现在我知道答案了,涉及到芯片最底层的只能用汇编,各种高级语言的运行都需要运行环境,这个运行环境包括了堆栈指针是否赋值到位,存储器空间是否准备好等等,而这些运行环境在芯片复位时是不能够完全保证的,所以就需要为其创建运行环境,创建C运行环境的过程中,肯定不能用C,只能用汇编。汇编是可以直接操作硬件的,不需要环境。虽然很多情况下,我们的开发工作都没有汇编的影子,视汇编为透明,但这不能说明它没有意义,它的作用是显而易见的!所以汇编是必不可少的!从来就不是多余的!
阅读(2924) | 评论(0) | 转发(0) |