timer用作timestamp及其他
niosii中使用时间戳是很有用的,可以查看代码的执行时间是多少,在使用timestamp的过程中遇到一些问题现在做一下记录。
1.硬件部分构建软核没什么,就加一个timer就行了,加完之后自动获得基地址和中断向量等级。生成软核,编译。
2,软件部分需要注意,首先要设置timestamp的timer,我的软件是10.1版的设置方法是在project explore中任意一个地方右键选择 niosii->bsp editor.在随后出来的界面中选择
main选项卡,下拉看到 timestamp_timer后选择硬件部分产生的timer。
3,在编写程序的时候需注意1):硬件部分添加的所有器件在main函数之前已经由alt_main()初始化完毕,2):alt_timestamp.h是供用户编写程序使用的,而altera_avalon_timer.h在程序初始化的过程中也即由alt_mai()及其子函数调用。altera_avalon_timer_ts_base和altera_avalon_timer_ts_freq是在初始化过程中已经赋了初值的。
4,在编写用户程序时不要忘了包含一些常见的,重要的头文件,如 类型头文件:alt_types.h,硬件描述头文件system.h,还有要使用的函数的hal层函数头文件等,这次添加timestamp出的问题就是只添加了alt_timestamp.h而忘记添加system.h导致功能不正常。添加这些头文件还应注意,system.h应该在前面。
5,关于timer的常用头文件:alt_timestamp.h三个函数,开启timestamp,获得时钟频率,获取时间戳。altera_avalon_timer.h系统初始化时调用。
altera_avalon_timer_regs.h 包含针对timer寄存器的底层驱动函数。
alt_irq.h包含中断注册函数。
6,timer用作计时器时,中断函数结束需要手动清除中断。