在三星6410裸机程序开发1文章中,说到的是采用eclipse + windows安装版的专为ARM嵌入式处理器预编译的GNU工具组合来开发6410的裸机程序。由于遇到了中断问题,所以不得不切换开发环境。
幸运地是,不仅顺利切换到RVDS环境,而且还发现了三星官方6410_Test工程。这个工程提供了芯片大部分功能模块的裸机程序实现和测试用例程序。
1. RVDS环境安装
RVDS(RealView® Development Suite)是ARM公司继SDT与ADS1.2之后主推的新一代开发工具,向下兼容以前的版本(ADS v1.2.1、1.1、1.0.1)。由于6410_Test工程采用的是RVDS2.2,所以当然是下载和安装2.2版本的RVDS。
RVDS2.2的下载地址:http://www.mcu123.com/down/get.asp?id=52&type=0&url=1。
RVDS2.2的破解安装教程:http://blog.csdn.net/cbffyx/article/details/8970786
2. 6410_Test工程
网上有多个版本的6410_Test工程。通过搜索比较发现,最新工程是Rev02版本——6410_Test_Rev02.zip。下载地址:http://www.pudn.com/downloads159/sourcecode/embed/detail714530.html
6410_Test_Rev02工程结构
6410_Test_Rev02工程由common、connectivity、memory、multimedia、peripheral和syscon等几部组成。集成了S3C6410处理器大部分功能模块底层软件功能和相应的API。
common:公共功能部分,包括main入口、启动初始化、分散加载(Scatterload)、基本库等;
connectivity:具有连接特性的片上外设驱动及API,如GPIO、I2C、SPI、UART等驱动和API;
memory:存储器如DDR、NAND FLASH等驱动及API;
multimedia:多媒体驱动和API;
peripheral:一般片上外设如RTC、CS8900、TIMER等驱动及API;
syscon:系统控制器的API;
此外,除了提供处理器各功能模块底层驱动和API外,还提供了丰富的测试用例。如下列各图所示。
6410_Test_Rev02 VIC中断支持
6410_Test_Rev02工程的中断默认不采用VIC中断模式。不过,可以把它配置为VIC中断模式。在工程中,点击Debug setting…,如下图所示。
然后在Language Settings—>RealView Assembler的Predefines窗口,在Equivalent Command Line中加入VIC_MODE定义语句:–predefine=”VIC_MODE
同理,在Language Settings—>RealView Compiler的Preprocessor窗口,在Equivalent Command Line中加入VIC_MODE定义语句:-DVIC_MODE=1,也可以通过上面的Add按钮来添加。
总结
三星官方提供的6410_Test_Rev02工程,功能非常全面、代码很规范,值得借鉴和使用。