例说FPGA:可直接用于工程项目的第一手经验【2.5】
2026/5/12 3:10:21 网站建设 项目流程

10.5 软件程序解析

1.main.c源文件软件程序解析

main.c的函数列表如表10-3所示。

2.int main(void)函数

int main(void)函数为主函数,其流程如图10-30所示。在各种外设初始化后,首先让LCD显示主菜单图片;接着进入主循环,依次判断串口“下载”指令、串口通用指令或触摸屏中断事件的发生,在这些事件触发后,调用相应的处理函数。

在void mcu_uart_process()函数和void Flash_download(void)函数中,我们会涉及NIOS II和PC端进行串口通信的基本协议帧,这些协议的格式列表以及Flash空间分配如表10-4至表10-6所示。

表10-4 FLASH地址空间映射表

说明:

①软字库部分的Flash空间分配暂时保留,待后续实例进一步解析和应用。

②1GB的FLASH地址空间分布:2KB×64page×1024block。1幅满屏图片所占地址空间:800×480×2B=750KB=375page<6block(384page),因此6block存储一张800×480的图片是没有问题的。

③对于图片数据的存储,头4个字节为字模分辨率信息(存储在头2K地址空间),后面的数据才是实际图片模的数据(从头2K地址空间之后开始存储)。

说明:

①串口下发数据的时候依次发送:帧头(1Byte)+ID(1Byte)+指令(1-2Byte)+图片或字模信息+图片或字模数据+(等待返回数据)+帧尾。帧头为0x55,帧尾为0xcc、0x33、0xc3、0x3c。

②在串口发送完一次指令(包括Flash擦除指令)后,需等待接收到两个字节返回数据作为响应,然后才可发送帧尾结束本次操作。

③两个字节的X或Y分辨率都是高字节在前,低字节在后。

说明:
①0xaa表示帧头,+0xcc+0x33+0xc3+0x3c表示帧尾。
②串口波特率固定为115200bit/s。3.static void handle_iic_interrupts(void)函数
略。请参考例程vip_ex7的软件程序代码解析。
4.void init_pio(void)函数
略。请参考例程vip_ex7的软件程序代码解析。
5.void Fl

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询