- 5.21 SWI_Runtime——软件中断(SWI)
开发板底板LED编号和GPIO对应关系如下:
开发板型号 GPIO0[0] GPIO0[5] GPIO0[1] GPIO0[2]
TL138/6748-EVM D7 D6 D9 D10
TL138/6748-EasyEVM D7 D6 D9 D10
TL138/6748-EthEVM D7 D6 D9 D10
TL138/6748F-EasyEVM \ GD1 GD2 GD3
TL138/6748F-EVM \ GD1 GD2 GD3
此程序的作用是通过LED的闪烁演示不同软件中断的优先级。
按照工程导入步骤加载SWI_Runtime.out文件,然后点击程序运行 按钮。
演示现象
底板LEDD9/GD2先闪烁5次,LEDD6/GD1再闪烁5次。LEDD9/GD2的优先级高于LEDD6/GD1。
- 5.22 SWI_Runtime_Post_Conditionally_andn——软件中断(有条件触发ANDN)
核心板LED编号和GPIO对应关系如下:
核心板型号 GPIO6[13] GPIO6[12]
SOM-TL138/6748 D5 D6
SOM-TL138/6748F FD1 FD2
此程序的作用是通过按键与LED的闪烁演示达到一定条件后执行软件中断。
本程序初始时配置一个触发变量值"00",在按下USER0和USER1按键后相应位清零,发布软件中断的时候会将这个参数与触发变量值做计算,只有经过计算后这个值为零才会执行软件中断函数,在这种情况下只有满足执行当前软件中断函数的条件全部就绪时才会执行。
按照工程导入步骤加载SWI_Runtime_Post_Conditionally_andn.out文件,然后点击程序运行 按钮。
演示现象
当分别按下USER0和USER1按键1次后,对于的位将被清零,核心板LEDD6/FD5和LEDD5/FD1分别闪烁1次。
- 5.23 SWI_Runtime_Post_Conditionally_dec——软件中断(有条件触发DEC)
核心板LED编号和GPIO对应关系如下:
核心板型号 GPIO6[13] GPIO6[12]
SOM-TL138/6748 D5 D6
SOM-TL138/6748F FD1 FD2
此程序的作用是通过按键与LED的闪烁演示达到一定条件后执行软件中断。
本程序初始时配置一个触发变量值"4",在按下USER0或USER1按键发布软件中断的时候会将这个触发变量值自减,只有经过计算后这个值为零才会执行软件中断函数,在这种情况下当同一个软件中断函数被重复发布多次后才会执行。
按照工程导入步骤加载SWI_Runtime_Post_Conditionally_dec.out文件,然后点击程序运行 按钮。
演示现象
当按下USER0或USER1按键累计4次后,核心板LEDD6/FD2和LEDD5/FD1分别闪烁1次。
- 5.24 SWI_Runtime_Post_Unconditionally_or——软件中断(无条件触发OR)
核心板LED编号和GPIO对应关系如下:
核心板型号 GPIO6[13] GPIO6[12]
SOM-TL138/6748 D5 D6
SOM-TL138/6748F FD1 FD2
此程序的作用是通过按键与LED的闪烁演示无条件执行软件中断。
本程序初始时配置一个触发变量值,在按下USER1或USER0按键发布软件中断时会将一个参数与这个触发变量值做计算(相应位置位),在软件中断函数中可以根据这个值来调用执行不同的函数,经过计算后这个值为零就会执行软件中断函数。
按照工程导入步骤加载SWI_Runtime_Post_Unconditionally_or.out文件,然后点击程序运行 按钮。
演示现象
当按下USER0或USER1按键后,核心板对应的LEDD6/FD2或LEDD5/FD1分别闪烁1次。
- 5.25 MEMORY——内存分配
此程序的作用是实现动态内存分配。
按照工程导入步骤加载MEMORY.out文件,然后点击程序运行 按钮。
演示现象
Console打印信息:
Initialtask0HeapBufstatus
largestFreeSize = 32
totalFreeSize = 3200
totalSize = 3200
CurrentHeapBufstatus
largestFreeSize = 32
totalFreeSize = 3136
totalSize = 3200
FinalHeapBufstatus
largestFreeSize = 32
totalFreeSize = 3200
totalSize = 3200
Task0Complete
Initialtask1heapstatus
largestFreeSize = 4096
totalFreeSize = 4096
totalSize = 4096
CurrentHeapBufstatus1
largestFreeSize = 3984
totalFreeSize = 3984
totalSize = 4096
CurrentHeapBufstatus2
largestFreeSize = 4080
totalFreeSize = 4080
totalSize = 4096
Finaltask1heapstatus
largestFreeSize = 4096
totalFreeSize = 4096
totalSize = 4096
Task1Complete
注意:Memory_alloc分配的是线程堆栈空间,Malloc分配的是系统堆栈空间。
转载于:https://blog.51cto.com/13771845/2357720