查看: 859|回复: 0

ADI的ARM开发板之分段的编写代码,是否可以更具有保护的功能

[复制链接]

该用户从未签到

发表于 2015-12-29 09:09:32 | 显示全部楼层 |阅读模式
分享到:
之前到手的ADI的ARM开发板了,瞅瞅做工的精致,无可挑剔。可是我却对此有不同的看法。
(1)     对于初学者来说,正确认识一款芯片的功能和性能非常重要,所以开发板做工非常讲究,但是价格不菲啊;
(2)     对于精确考量一款芯片的功能,例程代码不可或缺。所以,能够迅速有效的找到例程,也是必备的技能,至少需要沟通的能力。


对于一款开发板,我不太注重外观的好看,而是更注重功能的实现和电路的欣赏。下面,就着重从功能的实现来评价一下ADSP-CM408F。
想必,在其他的介绍中,大家已经非常熟悉ADSP-CM408F芯片的特性和功能。强大自不必说,价格不菲,也不多说了。我最看好的,这款开发板直接面对的客户应该是工程师,接口的隔离、开发板的扩展性都考虑进去。
我还是从实例出发,去分享我的看见吧。
一、环境的搭建
Keil环境和IAR环境都可以开始ADSP-CM408F的实验例程。但是两者相比还是有较大差距。
(1)     KEIL代码支持较少,费了好大的力气,才搞到两个例程,一个是IO中断点灯例程,一个是Boot_Optimization_Multi_App或者Boot_Optimization_single_App;相比之下,IAR环境下的例程非常丰富。
(2)     KEIL环境搭建相对简单一些,因为常用的缘故;而IAR对我来说,比较新,所以学习也很有动力。费了九牛二虎之力,在网友simon的帮助下,搞定了adi例程的安装,并开始了全新的旅程。旅程还是非常有意思的。
二、Keil的搭建;调试IO中断点灯的例程为例
一个是IO的输入中断特性,一个是IO的输出控制特性。想必原理非常简单。这里只是做一个中断的查看,是否有中断进入。


三、IAR的搭建;
打开工程步骤:以串口例程为例。
(1)最佳的打开,是从file/open/workspace…

(2)从openworkspace的窗口中,选择要打开的例程,选择*.eww文件。


(3)打开之后,就进入了代码的享受之中了。CM408F的例程的编写者想的非常周到,每个例程都有一个txt文件,对例程的功能和使用者注意事项进行了描述。比如,串口例程uartcharecho,有文件readme_uartcharecho.txt进行说明。
刚开始的时候,我还在想,按一般的处理,echo指的是:将tx和rx短接,发送什么数据,收取什么数据,可是当我正准备去寻找tx和rx两根线在哪里的时候,txt文件提醒了我,这里的echo需要PC的配合。于是乎,我节省了很多的时间。


Hardware Setup:
===============   
   Connect RS232 cable to the RS-232 EZ-Kit on one end and the other end toPC. Open
   hyperterminal and configure it with following settings :
   Bits per second    : 9600
   Data bits       : 8
   Parity          : None
   Stop bits        : 1
   Flow Control      : None
External connections:
=====================
   Connect RS-232 cable to RS-232 EZ-Kit connector on one end and other endto PC.

四、IAR环境的其他例程
熟悉了IAR的环境之后,其他例程跟着走起来!!!!
(1)     IO中断点灯
这个例程,主要考察IO的中断功能(输入),同时考察IO的输出控制功能。
打开文件夹C:\AnalogDevices1.1\ADSP-CM40x\CM403F_CM408F_EZ-KIT\examples\Button_LED_GPIO\CM408F\iar下的Button_LED_GPIO.eww。
编译,运行,在代码中添加打印。主线程在一直运行,我做了一个打印,上电运行之后,代码在一直输出打印字符。
同时,另外一个打印是表明,当有中断进来的时候,打印输出。下图所示,正常主线程打印数字,每隔10个间隔,打印输出一次。当有中断到来的时候,立即打印。

(2)     ADC采样
这个例程主要考察AD模块的配置和实现。AD模块的配置比较简单,如果有兴趣,可以直接参考例程,进行设置,特别注意AD采样时钟的周期配置,需要你根据实际情况进行设定。其他的就看我的图片吧。因为开发板的输入端,一直接入地,所以读取的数据恒为0.

(3)     SPORT接口loopback测试
根据提示,该项例程,不需要做任务额外的操作,只需要找到源代码的验证之处,用watch窗口进行观察和比较。
特别注意的是,SPORT口(synchronousserial Port),即同步串行接口。完全独立的接收和发送通道,且每个通道都具有缓冲,最高速度可达SCLK/2。貌似只有在ADI的MCU/DSP/ARM上才发现的接口。

(4)最具特色的例程:Boot_Optimization_Multi_App
这个例程,操作起来比较简单。在KEIL和IAR环境下,我都进行了操作,结果相同,结论一致。但是细细回想起来,这个例程的确值得回味。
慢慢分享一下吧。
Description:   This is asupplemental code example for Engineer-to-Engineer Note EE-359
           ADSP-CM40x BootTime Optimization & Device Initialization. Refer to the
         Engineer-to-Engineer note in the doc folder for more information.
这个例程大致的意思是:先烧写一段代码(成为代码1),再烧写一段代码(代码2),但是没有代码2的烧写,那么代码1的逻辑就不能施展,于是当代码2烧写成功之后,代码1的逻辑功能(闪烁灯实验)就“刷”的启动了。
我个人的想法:分段的编写代码,是否可以更具有保护的功能。值得深思。
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

手机版|小黑屋|与非网

GMT+8, 2024-11-19 02:49 , Processed in 0.120280 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.