Altera公司的NiosII软核处理器具有完全可定制特性、高性能、较低的产品和实施成本、易用性、适应性以及不会过时等优势。使用NiosII处理器,将不会局限于预先制造的处理器技术,而是根据用户的标准定制处理器,按照需要选择合适的外设、存储器和接口。此外,还可以轻松集成用户专有的功能,使设计具有独特的竞争优势。 NiosII处理器的软件开发是建立在ANSI C基础上的。NiosII IDE是NiosII系列嵌入式处理器的主要软件开发工具。用户可以在NiosII IDE中完成所有的软件开发任务,如编辑、编译、下载、调试和闪存编程。NiosII嵌入式系统的一个重要问题就是软件代码量的大小,这关系到存放代码的存储器件容量大小,因此控制和减小程序代码量是降低系统成本的重要方法,必须首先从处理器的启动顺序开始研究。 1 NiosII处理器启动顺序和程序入口地址 NiosII处理器的启动可采用两种方式:自动初始化和用户自定义初始化。ANSI C标准定义应用程序可以通过调用main()来开始执行。在调用main()之前,应用程序假定运行环境和所有的服务系统都被初始化并准备运行。初始化可以被硬件抽象层(HAL)系统库自动执行。程序员不需要考虑系统的输出设备以及如何初始化每一个外设,HAL会自动初始化整个系统。 另外,ANSI C标准也提供了一个可变的入口点程序,以避免自动初始化。ANSI C标准还定义程序员能手动初始化任何所用的硬件。alt_main()函数提供了一个独立式的编程环境,能够完全控制系统的初始化。独立式编程环境可以使程序员手动编写初始化系统的代码。 HAL提供的系统初始化代码按以下启动顺序运行: ① 启动指令和数据高速缓冲存储器; ② 配置堆栈; ③ 配置全局指针; ④ 通过链接器提供的_bss_start和_bss_end来零初始化BSS层,_bss_start和_bss_end是开始和结束BSS的命令; ⑤ 如果当前系统没有启动下载器,就复制.rwdata、.rodata,或者剩下的部分到RAM; ⑥ 调用alt_main()。 [attach]2275[/attach]
[此贴子已经被作者于2007-8-6 12:00:00编辑过] |