Board logo

标题: DSP滴答时钟更新 [打印本页]

作者: look_w    时间: 2017-9-23 15:22     标题: DSP滴答时钟更新

本帖最后由 look_w 于 2017-9-23 15:37 编辑

迁移到操作系统的Flash烧写在之前“通用方法”一文中,已经详述了如何烧写裸机的代码,这里只需要对DSP/BIOS工程做很少的改动,就可无缝的将之前的烧写方法用在这里,下面还是按步骤来,主要描述一些不同的地方(这样清晰些):
给自己也给大家的忠告还在1~2个月之前,我还对DSP烧写Flash一无所知,更对DSP/BIOS一无所知,然后,从网络上Download了十来篇论文,然后一篇一篇的看了一遍,虽说不能立刻完全明白,但零星的还是感觉知道了那么一点,然后准备自己动手写,却发现无处着手——那些论文尽是框架大论!完全无法满足初学者的需求。
于是又在网上Google/Baidu浪淘沙一样的想找一些简单的,尤其是给出几乎每步详细步骤的,可惜的是——毫无所获!后来想想,折腾了这么几天,还是不知道从哪入手,不行了,于是去找来了TI的关于二级Bootloader的手册,一页页的看(其实手册很短,也就十几二十页),突然发现慢慢有了些眉目。TI的手册上给出了二级引导的源码,并描述了那样做的原因和过程,于是根据该手册提供的相关资料一点点将Bootloader的过程拼凑了起来!关键是在_c_int00和main函数之间下功夫。
后来就参考TI的文档开始写了,但启动文件是写好了,但怎么烧写到Flash中一直困扰着我,如果烧写和应用程序在同一个程序中,那不是就成了“鸡生蛋还是蛋生鸡”的问题了吗?(其实这个可以通过硬件上外置一个拨码开关来设置,就可以令程序自烧写)。然而我也没有开关,从一个QQ群里咨询了一位大牛,大牛给了我一份他烧写的方法,顿时豁然开朗,把DSP张载程序后在内存运行的东西先都读出来,在通过另一个工程烧写不就可以了吗?我最后就是这么做的,在这过程中还一直庆幸自己对cmd文件、内存等还算了解,甚至在将从内存中导出的东西修改成头文件还用到了VIM(神一样的编辑器)。学习DSP/BIOS,我庆幸之前已经用过了uCOS ii,很快就入门了,所谓“书到用时方恨少”,当然自知其中韵味了。
有些网友看过我的“”一文,于是来问我:
“怎么我直接拷贝哪些汇编过去不行呢?”然后,我回答:
“您能回去看看那汇编是干什么的吗?”回答说:
“汇编太复杂了,您就说下为什么吧。”好吧,我实在不知怎么去劝导他,只有深刻体会这些汇编实现的功能及整个启动的流程(代码执行/跳转的过程),才能保证不管硬件怎么变、环境怎么变,都能正确的成功的烧写!
IT界一直存在着这么一种观点:
“这代码什么的都有了,会用就行了,不用重复造轮子!”这话没错,可惜用错了地方,我只能说:
“轮子是有了,可这轮子好使吗?敢保证跑它十天八天不会挂吗?”一旦成了标准,你可以不用重复造轮子了,否则,“不断的改进”才是创造的源泉!




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0