更新了部分说明文档

This commit is contained in:
JefferyLi0903 2022-08-16 16:54:00 +08:00
parent c86b446c69
commit 7b57f3fee0
43 changed files with 275252 additions and 298349 deletions

View File

@ -1,77 +1,3 @@
# README # README
## RSSI 扫频算法设计 本项目为基于Cortex M0软核基于安路FPGA硬件平台搭建的一个收音机SOC系统。
### RSSI分布描述
<img src="docs/pic/image.png"/>
该图为频率范围$f\in[87MHz,108MHz]$下的RSSI的对数坐标分布$RSSI_{log}=10\times\log{RSSI}$。
此设计的目的是**利用编写的接口函数,筛选出图中标出的频点**。
### 需求描述
#### 输入
##### RSSIType
上图中对应的RSSI数据存放在下述定义的数据结构中
```c
typedef struct{
int index; //存放每个采样点的索引值
int RSSI; //存放RSSI的值
}RSSIType;
```
❤**注意此处的RSSI不是图中所示的对数形式请不要对RSSI的值进行Log运算尽量不要进行任何运算因为数据量大延迟很高。**
构成结构数组定义如下:
```C
#define NUM 1060
#define STEP 0.02
RSSIType rssilist[NUM];
```
不推荐更改`NUM`数组长度设定为1060`STEP`扫频步长设定为0.02MHz的数值。由于不可名状的BUG在第一次运行扫频函数时`rssilist[0]`的RSSI值为0。因此可以使用的数据为`rssilist[1]`~`rssilist[1050]`共1050个RSSIType数据结构。由于C的浮点数特性导致频率为108时仍然可以运行扫频程序因此会比期望的数量多一个
##### 门限值Thresh
`RSSI>Thresh`时对应的频率才可能成为频点,**但若该门限过低导致输出的频点多于16个时仅输出最高的16个。**
#### 输出
观察数据规律输出RSSI值最高的频点**精度要求为0.1MHz**),将所有频点的频率**从小到大**存放在以下数据结构中。
```C
typedef struct{
unsigned int channel_no; //存放频道号从1开始递增编号
float freq; //存放频点频率
unsigned int INT; //存放整数部分
unsigned int FRAC; //存放小数部分
}ChannelControlType;
```
其中`INT``FRAC`与频率的转换公式如下:
```C
int INT=floor(freq/3);
int FRAC=(freq/3-INT)*3000;
```
**可以使用提供的数据在x86平台进行测试测试完毕后需要按照注释的位置插入相应的代码并Build确认无报错**。
需要插入的部分包括:
`code_def.h`第73行声明函数名
`code_def.c`第13行创建ChannelControlType数组含有16个元素全局变量
`code_def.c`第239行调用函数
`code_def.c`第246行完成函数构建。

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -22,7 +22,7 @@ Dialog DLL: TARMCM1.DLL V1.14.4.0
<h2>Project:</h2> <h2>Project:</h2>
D:\Documents\MMC\keil\MMC.uvprojx D:\Documents\MMC\keil\MMC.uvprojx
Project File Date: 06/29/2022 Project File Date: 06/30/2022
<h2>Output:</h2> <h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin'
@ -34,17 +34,20 @@ compiling auxiliary.c...
int isNegative = 0; int isNegative = 0;
..\src\auxiliary.c: 1 warning, 0 errors ..\src\auxiliary.c: 1 warning, 0 errors
compiling channelSelection_control.c... compiling channelSelection_control.c...
..\src\channelSelection_control.c(68): warning: #177-D: variable "MSI_SPI_Data" was declared but never referenced
unsigned int MSI_SPI_Data= 0;
..\src\channelSelection_control.c: 1 warning, 0 errors
compiling code_def.c... compiling code_def.c...
..\src\code_def.c(228): warning: #177-D: variable "j" was declared but never referenced ..\src\code_def.c(230): warning: #177-D: variable "j" was declared but never referenced
int j; int j;
..\src\code_def.c: 1 warning, 0 errors ..\src\code_def.c: 1 warning, 0 errors
linking... linking...
.\MMC.axf: Warning: L6305W: Image does not have an entry point. (Not specified or not set due to multiple choices.) .\MMC.axf: Warning: L6305W: Image does not have an entry point. (Not specified or not set due to multiple choices.)
Program Size: Code=12384 RO-data=240 RW-data=40 ZI-data=10920 Program Size: Code=10284 RO-data=280 RW-data=40 ZI-data=11096
Finished: 0 information, 1 warning and 0 error messages. Finished: 0 information, 1 warning and 0 error messages.
After Build - User command #1: fromelf -cvf .\MMC.axf --vhx --32x1 -o MMC.hex After Build - User command #1: fromelf -cvf .\MMC.axf --vhx --32x1 -o MMC.hex
After Build - User command #2: fromelf -cvf .\MMC.axf -o MMC.txt After Build - User command #2: fromelf -cvf .\MMC.axf -o MMC.txt
".\MMC.axf" - 0 Error(s), 3 Warning(s). ".\MMC.axf" - 0 Error(s), 4 Warning(s).
<h2>Software Packages used:</h2> <h2>Software Packages used:</h2>
@ -57,7 +60,7 @@ Package Vendor: Keil
C:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include C:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include
<h2>Collection of Component Files used:</h2> <h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:01 Build Time Elapsed: 00:00:00
</pre> </pre>
</body> </body>
</html> </html>

File diff suppressed because it is too large Load Diff

View File

@ -3,11 +3,11 @@
<title>Static Call Graph - [.\MMC.axf]</title></head> <title>Static Call Graph - [.\MMC.axf]</title></head>
<body><HR> <body><HR>
<H1>Static Call Graph for image .\MMC.axf</H1><HR> <H1>Static Call Graph for image .\MMC.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Wed Jun 29 12:49:31 2022 <BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Tue Jul 19 23:11:24 2022
<BR><P> <BR><P>
<H3>Maximum Stack Usage = 200 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3> <H3>Maximum Stack Usage = 208 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3> Call chain for Maximum Stack Depth:</H3>
RSSI_Scan_Done &rArr; RSSIScanHandler &rArr; RSSIScanscreen &rArr; floor &rArr; __aeabi_cdrcmple RSSI_Scan_Done &rArr; RSSIScanHandler &rArr; RSSIScanscreen &rArr; __aeabi_dmul
<P> <P>
<H3> <H3>
Functions with no stack information Functions with no stack information
@ -66,9 +66,9 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[1f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry <BR><BR>[Calls]<UL><LI><a href="#[1f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL> </UL>
<P><STRONG><a name="[83]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) <P><STRONG><a name="[87]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[84]"></a>__scatterload_null</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) <P><STRONG><a name="[88]"></a>__scatterload_null</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[21]"></a>__scatterload_copy</STRONG> (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED) <P><STRONG><a name="[21]"></a>__scatterload_copy</STRONG> (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy <BR><BR>[Calls]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
@ -76,80 +76,80 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy <BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
</UL> </UL>
<P><STRONG><a name="[85]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED) <P><STRONG><a name="[89]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[25]"></a>__rt_lib_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000)) <P><STRONG><a name="[25]"></a>__rt_lib_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_li <BR><BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_li
</UL> </UL>
<P><STRONG><a name="[86]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) <P><STRONG><a name="[8a]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[87]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C)) <P><STRONG><a name="[8b]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C))
<P><STRONG><a name="[88]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) <P><STRONG><a name="[8c]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[89]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) <P><STRONG><a name="[8d]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[8a]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) <P><STRONG><a name="[8e]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[8b]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) <P><STRONG><a name="[8f]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[8c]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002)) <P><STRONG><a name="[90]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[8d]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) <P><STRONG><a name="[91]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[8e]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) <P><STRONG><a name="[92]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[8f]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A)) <P><STRONG><a name="[93]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A))
<P><STRONG><a name="[90]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011)) <P><STRONG><a name="[94]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011))
<P><STRONG><a name="[91]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) <P><STRONG><a name="[95]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[92]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) <P><STRONG><a name="[96]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[93]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) <P><STRONG><a name="[97]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[94]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) <P><STRONG><a name="[98]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[95]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) <P><STRONG><a name="[99]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[96]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) <P><STRONG><a name="[9a]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[97]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033)) <P><STRONG><a name="[9b]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033))
<P><STRONG><a name="[98]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) <P><STRONG><a name="[9c]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[99]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) <P><STRONG><a name="[9d]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[9a]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) <P><STRONG><a name="[9e]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[2a]"></a>__rt_lib_shutdown</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000)) <P><STRONG><a name="[2a]"></a>__rt_lib_shutdown</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_ls <BR><BR>[Called By]<UL><LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_ls
</UL> </UL>
<P><STRONG><a name="[9b]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) <P><STRONG><a name="[9f]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[9c]"></a>__rt_lib_shutdown_fini_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) <P><STRONG><a name="[a0]"></a>__rt_lib_shutdown_fini_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[9d]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009)) <P><STRONG><a name="[a1]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009))
<P><STRONG><a name="[9e]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011)) <P><STRONG><a name="[a2]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011))
<P><STRONG><a name="[9f]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012)) <P><STRONG><a name="[a3]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012))
<P><STRONG><a name="[a0]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) <P><STRONG><a name="[a4]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[a1]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006)) <P><STRONG><a name="[a5]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006))
<P><STRONG><a name="[a2]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E)) <P><STRONG><a name="[a6]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E))
<P><STRONG><a name="[1f]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000)) <P><STRONG><a name="[1f]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[1c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main <BR><BR>[Called By]<UL><LI><a href="#[1c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
<LI><a href="#[20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2 <LI><a href="#[20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2
</UL> </UL>
<P><STRONG><a name="[a3]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) <P><STRONG><a name="[a7]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[22]"></a>__rt_entry_sh</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004)) <P><STRONG><a name="[22]"></a>__rt_entry_sh</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size <BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
@ -162,17 +162,17 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init <BR><BR>[Calls]<UL><LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init
</UL> </UL>
<P><STRONG><a name="[a4]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009)) <P><STRONG><a name="[a8]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[26]"></a>__rt_entry_main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)) <P><STRONG><a name="[26]"></a>__rt_entry_main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size <BR><BR>[Stack]<UL><LI>Max Depth = 48 + Unknown Stack Size
<LI>Call Chain = __rt_entry_main &rArr; exit <LI>Call Chain = __rt_entry_main &rArr; main &rArr; initialize
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit <BR>[Calls]<UL><LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
<LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[a5]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)) <P><STRONG><a name="[a9]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[53]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000)) <P><STRONG><a name="[53]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit <BR><BR>[Called By]<UL><LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
@ -182,12 +182,18 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown <BR><BR>[Calls]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown
</UL> </UL>
<P><STRONG><a name="[a6]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002)) <P><STRONG><a name="[aa]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[2b]"></a>__rt_exit_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004)) <P><STRONG><a name="[2b]"></a>__rt_exit_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sys_exit <BR><BR>[Calls]<UL><LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sys_exit
</UL> </UL>
<P><STRONG><a name="[7c]"></a>__aeabi_memcpy4</STRONG> (Thumb, 56 bytes, Stack size 0 bytes, rt_memcpy.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initialize
</UL>
<P><STRONG><a name="[ab]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, rt_memcpy.o(.emb_text), UNUSED)
<P><STRONG><a name="[1b]"></a>Reset_Handler</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, startup_cmsdk_cm0.o(.text)) <P><STRONG><a name="[1b]"></a>Reset_Handler</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, startup_cmsdk_cm0.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[1c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main <BR><BR>[Calls]<UL><LI><a href="#[1c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
</UL> </UL>
@ -207,14 +213,14 @@ Global Symbols
<BR>[Address Reference Count : 1]<UL><LI> startup_cmsdk_cm0.o(RESET) <BR>[Address Reference Count : 1]<UL><LI> startup_cmsdk_cm0.o(RESET)
</UL> </UL>
<P><STRONG><a name="[6]"></a>UART_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_cmsdk_cm0.o(.text)) <P><STRONG><a name="[6]"></a>UART_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_cmsdk_cm0.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = UART_Handler &rArr; UARTHandle &rArr; ChannelSelection_control &rArr; singleFrequencyRSSI &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = UART_Handler &rArr; UARTHandle &rArr; ChannelSelection_control &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTHandle <BR>[Calls]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTHandle
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_cmsdk_cm0.o(RESET) <BR>[Address Reference Count : 1]<UL><LI> startup_cmsdk_cm0.o(RESET)
</UL> </UL>
<P><STRONG><a name="[9]"></a>RSSI_Scan_Done</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_cmsdk_cm0.o(.text)) <P><STRONG><a name="[9]"></a>RSSI_Scan_Done</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_cmsdk_cm0.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 200<LI>Call Chain = RSSI_Scan_Done &rArr; RSSIScanHandler &rArr; RSSIScanscreen &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = RSSI_Scan_Done &rArr; RSSIScanHandler &rArr; RSSIScanscreen &rArr; __aeabi_dmul
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler <BR>[Calls]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
</UL> </UL>
@ -336,31 +342,31 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[23]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap <BR><BR>[Called By]<UL><LI><a href="#[23]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL> </UL>
<P><STRONG><a name="[75]"></a>strlen</STRONG> (Thumb, 62 bytes, Stack size 12 bytes, strlen.o(.text)) <P><STRONG><a name="[76]"></a>strlen</STRONG> (Thumb, 62 bytes, Stack size 12 bytes, strlen.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = strlen <BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = strlen
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
</UL> </UL>
<P><STRONG><a name="[a7]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, aeabi_sdiv.o(.text), UNUSED) <P><STRONG><a name="[ac]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, aeabi_sdiv.o(.text), UNUSED)
<P><STRONG><a name="[62]"></a>__aeabi_uidivmod</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, aeabi_sdiv.o(.text)) <P><STRONG><a name="[63]"></a>__aeabi_uidivmod</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, aeabi_sdiv.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <BR><BR>[Called By]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<P><STRONG><a name="[a8]"></a>__aeabi_idiv</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, aeabi_sdiv.o(.text), UNUSED) <P><STRONG><a name="[ad]"></a>__aeabi_idiv</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, aeabi_sdiv.o(.text), UNUSED)
<P><STRONG><a name="[79]"></a>__aeabi_idivmod</STRONG> (Thumb, 326 bytes, Stack size 8 bytes, aeabi_sdiv.o(.text)) <P><STRONG><a name="[7d]"></a>__aeabi_idivmod</STRONG> (Thumb, 326 bytes, Stack size 8 bytes, aeabi_sdiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_idivmod <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_idivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int_to_str <BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int_to_str
</UL> </UL>
<P><STRONG><a name="[a9]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) <P><STRONG><a name="[ae]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[aa]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) <P><STRONG><a name="[af]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[ab]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) <P><STRONG><a name="[b0]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[68]"></a>__aeabi_d2f</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, d2f.o(.text)) <P><STRONG><a name="[68]"></a>__aeabi_d2f</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, d2f.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_d2f <BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_d2f
@ -369,12 +375,12 @@ Global Symbols
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler <LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
</UL> </UL>
<P><STRONG><a name="[ac]"></a>_d2f</STRONG> (Thumb, 120 bytes, Stack size 12 bytes, d2f.o(.text), UNUSED) <P><STRONG><a name="[b1]"></a>_d2f</STRONG> (Thumb, 120 bytes, Stack size 12 bytes, d2f.o(.text), UNUSED)
<P><STRONG><a name="[67]"></a>__aeabi_dadd</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, daddsub.o(.text)) <P><STRONG><a name="[67]"></a>__aeabi_dadd</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, daddsub.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_dadd <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_dadd
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor <BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler <LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
</UL> </UL>
@ -384,17 +390,17 @@ Global Symbols
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dadd1 <LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dadd1
</UL> </UL>
<P><STRONG><a name="[ad]"></a>__aeabi_dsub</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, daddsub.o(.text), UNUSED) <P><STRONG><a name="[b2]"></a>__aeabi_dsub</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, daddsub.o(.text), UNUSED)
<P><STRONG><a name="[44]"></a>_dsub</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, daddsub.o(.text), UNUSED) <P><STRONG><a name="[44]"></a>_dsub</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, daddsub.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dsub1 <BR><BR>[Calls]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dsub1
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dadd1 <LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dadd1
</UL> </UL>
<P><STRONG><a name="[78]"></a>__aeabi_drsub</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, daddsub.o(.text)) <P><STRONG><a name="[7a]"></a>__aeabi_drsub</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, daddsub.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_drsub <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_drsub
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor <BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor
</UL> </UL>
<P><STRONG><a name="[45]"></a>_drsb</STRONG> (Thumb, 28 bytes, Stack size 16 bytes, daddsub.o(.text), UNUSED) <P><STRONG><a name="[45]"></a>_drsb</STRONG> (Thumb, 28 bytes, Stack size 16 bytes, daddsub.o(.text), UNUSED)
@ -402,37 +408,38 @@ Global Symbols
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dadd1 <LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dadd1
</UL> </UL>
<P><STRONG><a name="[7a]"></a>__aeabi_d2iz</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, dfixi.o(.text)) <P><STRONG><a name="[71]"></a>__aeabi_d2iz</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, dfixi.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_d2iz <BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_d2iz
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
<P><STRONG><a name="[ae]"></a>_dfix</STRONG> (Thumb, 98 bytes, Stack size 12 bytes, dfixi.o(.text), UNUSED) <P><STRONG><a name="[b3]"></a>_dfix</STRONG> (Thumb, 98 bytes, Stack size 12 bytes, dfixi.o(.text), UNUSED)
<P><STRONG><a name="[71]"></a>__aeabi_d2uiz</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, dfixui.o(.text)) <P><STRONG><a name="[70]"></a>__aeabi_dmul</STRONG> (Thumb, 0 bytes, Stack size 56 bytes, dmul.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_d2uiz <BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = __aeabi_dmul
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
<P><STRONG><a name="[af]"></a>_dfixu</STRONG> (Thumb, 68 bytes, Stack size 8 bytes, dfixui.o(.text), UNUSED) <P><STRONG><a name="[b4]"></a>_dmul</STRONG> (Thumb, 558 bytes, Stack size 56 bytes, dmul.o(.text), UNUSED)
<P><STRONG><a name="[66]"></a>__aeabi_f2d</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, f2d.o(.text)) <P><STRONG><a name="[66]"></a>__aeabi_f2d</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, f2d.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR><BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler <LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
</UL> </UL>
<P><STRONG><a name="[b0]"></a>_f2d</STRONG> (Thumb, 80 bytes, Stack size 0 bytes, f2d.o(.text), UNUSED) <P><STRONG><a name="[b5]"></a>_f2d</STRONG> (Thumb, 80 bytes, Stack size 0 bytes, f2d.o(.text), UNUSED)
<P><STRONG><a name="[6e]"></a>__aeabi_fdiv</STRONG> (Thumb, 0 bytes, Stack size 20 bytes, fdiv.o(.text)) <P><STRONG><a name="[6b]"></a>__aeabi_fdiv</STRONG> (Thumb, 0 bytes, Stack size 20 bytes, fdiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = __aeabi_fdiv <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = __aeabi_fdiv
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
@ -444,21 +451,21 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fdiv <BR><BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fdiv
</UL> </UL>
<P><STRONG><a name="[7b]"></a>__aeabi_f2iz</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, ffixi.o(.text)) <P><STRONG><a name="[7e]"></a>__aeabi_f2iz</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, ffixi.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_f2iz <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_f2iz
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
</UL> </UL>
<P><STRONG><a name="[b1]"></a>_ffix</STRONG> (Thumb, 76 bytes, Stack size 8 bytes, ffixi.o(.text), UNUSED) <P><STRONG><a name="[b6]"></a>_ffix</STRONG> (Thumb, 76 bytes, Stack size 8 bytes, ffixi.o(.text), UNUSED)
<P><STRONG><a name="[61]"></a>__aeabi_f2uiz</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, ffixui.o(.text)) <P><STRONG><a name="[62]"></a>__aeabi_f2uiz</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, ffixui.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <BR><BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<P><STRONG><a name="[b2]"></a>_ffixu</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, ffixui.o(.text), UNUSED) <P><STRONG><a name="[b7]"></a>_ffixu</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, ffixui.o(.text), UNUSED)
<P><STRONG><a name="[49]"></a>__aeabi_i2f_normalise</STRONG> (Thumb, 72 bytes, Stack size 0 bytes, fflti.o(.text)) <P><STRONG><a name="[49]"></a>__aeabi_i2f_normalise</STRONG> (Thumb, 72 bytes, Stack size 0 bytes, fflti.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2f <BR><BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2f
@ -469,11 +476,11 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f_normalise <BR><BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f_normalise
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
<P><STRONG><a name="[b3]"></a>_fflt</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, fflti.o(.text), UNUSED) <P><STRONG><a name="[b8]"></a>_fflt</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, fflti.o(.text), UNUSED)
<P><STRONG><a name="[4a]"></a>__aeabi_ui2f</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, fflti.o(.text)) <P><STRONG><a name="[4a]"></a>__aeabi_ui2f</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, fflti.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f_normalise <BR><BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f_normalise
@ -481,21 +488,22 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
<P><STRONG><a name="[b4]"></a>_ffltu</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, fflti.o(.text), UNUSED) <P><STRONG><a name="[b9]"></a>_ffltu</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, fflti.o(.text), UNUSED)
<P><STRONG><a name="[4b]"></a>__fpl_dcmp_InfNaN</STRONG> (Thumb, 140 bytes, Stack size 24 bytes, dcmpin.o(.text), UNUSED) <P><STRONG><a name="[4b]"></a>__fpl_dcmp_InfNaN</STRONG> (Thumb, 140 bytes, Stack size 24 bytes, dcmpin.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dcheck_NaN2 <BR><BR>[Calls]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dcheck_NaN2
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_cmpreturn <LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_cmpreturn
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_drcmple <BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_drcmple
<LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dcmple <LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dcmple
</UL> </UL>
<P><STRONG><a name="[4e]"></a>__fpl_fcmp_InfNaN</STRONG> (Thumb, 96 bytes, Stack size 8 bytes, fcmpin.o(.text), UNUSED) <P><STRONG><a name="[4e]"></a>__fpl_fcmp_InfNaN</STRONG> (Thumb, 96 bytes, Stack size 8 bytes, fcmpin.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_fcheck_NaN2 <BR><BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_fcheck_NaN2
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_cmpreturn <LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_cmpreturn
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fcmple <BR>[Called By]<UL><LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fcmple
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fcmpeq
</UL> </UL>
<P><STRONG><a name="[4c]"></a>__fpl_cmpreturn</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, cmpret.o(.text), UNUSED) <P><STRONG><a name="[4c]"></a>__fpl_cmpreturn</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, cmpret.o(.text), UNUSED)
@ -543,23 +551,23 @@ Global Symbols
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dcheck_NaN2 <LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dcheck_NaN2
</UL> </UL>
<P><STRONG><a name="[b5]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) <P><STRONG><a name="[ba]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[51]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text)) <P><STRONG><a name="[51]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[23]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap <BR><BR>[Called By]<UL><LI><a href="#[23]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL> </UL>
<P><STRONG><a name="[b6]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) <P><STRONG><a name="[bb]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[2c]"></a>_sys_exit</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text)) <P><STRONG><a name="[2c]"></a>_sys_exit</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_exit <BR><BR>[Called By]<UL><LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_exit
</UL> </UL>
<P><STRONG><a name="[b7]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) <P><STRONG><a name="[bc]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[b8]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) <P><STRONG><a name="[bd]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[b9]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED) <P><STRONG><a name="[be]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[6f]"></a>Bubbling</STRONG> (Thumb, 100 bytes, Stack size 20 bytes, code_def.o(i.Bubbling)) <P><STRONG><a name="[6f]"></a>Bubbling</STRONG> (Thumb, 100 bytes, Stack size 20 bytes, code_def.o(i.Bubbling))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = Bubbling <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = Bubbling
@ -567,10 +575,11 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
<P><STRONG><a name="[54]"></a>ChannelSelection_control</STRONG> (Thumb, 5260 bytes, Stack size 16 bytes, channelselection_control.o(i.ChannelSelection_control)) <P><STRONG><a name="[54]"></a>ChannelSelection_control</STRONG> (Thumb, 2280 bytes, Stack size 16 bytes, channelselection_control.o(i.ChannelSelection_control))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = ChannelSelection_control &rArr; singleFrequencyRSSI &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = ChannelSelection_control &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WriteUART <LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WriteUART
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Stop_FM_command <LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Stop_FM_command
@ -579,20 +588,21 @@ Global Symbols
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_scan_cmd <LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_scan_cmd
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IQ_Dump_command <LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IQ_Dump_command
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Demodulated_Data_Dump_command <LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Demodulated_Data_Dump_command
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int_to_str <LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int_to_str
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTHandle <BR>[Called By]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTHandle
</UL> </UL>
<P><STRONG><a name="[5f]"></a>Channel_control</STRONG> (Thumb, 106 bytes, Stack size 32 bytes, code_def.o(i.Channel_control)) <P><STRONG><a name="[60]"></a>Channel_control</STRONG> (Thumb, 106 bytes, Stack size 32 bytes, code_def.o(i.Channel_control))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = Channel_control &rArr; __aeabi_fmul <BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = Channel_control &rArr; __aeabi_fmul
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul <BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2uiz <LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2uiz
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control <BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
<LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY9 <LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY9
<LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY8 <LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY8
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY7 <LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY7
@ -611,7 +621,7 @@ Global Symbols
<LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY0 <LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY0
</UL> </UL>
<P><STRONG><a name="[74]"></a>Delay</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, code_def.o(i.Delay)) <P><STRONG><a name="[75]"></a>Delay</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, code_def.o(i.Delay))
<BR><BR>[Called By]<UL><LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR><BR>[Called By]<UL><LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
</UL> </UL>
@ -627,9 +637,9 @@ Global Symbols
<P><STRONG><a name="[31]"></a>KEY0</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, code_def.o(i.KEY0)) <P><STRONG><a name="[31]"></a>KEY0</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, code_def.o(i.KEY0))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY0 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY0 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[19]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY0_Handler <BR>[Called By]<UL><LI><a href="#[19]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY0_Handler
</UL> </UL>
@ -637,9 +647,9 @@ Global Symbols
<P><STRONG><a name="[32]"></a>KEY1</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY1)) <P><STRONG><a name="[32]"></a>KEY1</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY1))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY1 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY1 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[18]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY1_Handler <BR>[Called By]<UL><LI><a href="#[18]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY1_Handler
</UL> </UL>
@ -647,9 +657,9 @@ Global Symbols
<P><STRONG><a name="[3b]"></a>KEY10</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY10)) <P><STRONG><a name="[3b]"></a>KEY10</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY10))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY10 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY10 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY10_Handler <BR>[Called By]<UL><LI><a href="#[f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY10_Handler
</UL> </UL>
@ -657,9 +667,9 @@ Global Symbols
<P><STRONG><a name="[3c]"></a>KEY11</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY11)) <P><STRONG><a name="[3c]"></a>KEY11</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY11))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY11 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY11 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY11_Handler <BR>[Called By]<UL><LI><a href="#[e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY11_Handler
</UL> </UL>
@ -667,9 +677,9 @@ Global Symbols
<P><STRONG><a name="[3d]"></a>KEY12</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY12)) <P><STRONG><a name="[3d]"></a>KEY12</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY12))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY12 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY12 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY12_Handler <BR>[Called By]<UL><LI><a href="#[d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY12_Handler
</UL> </UL>
@ -677,9 +687,9 @@ Global Symbols
<P><STRONG><a name="[3e]"></a>KEY13</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY13)) <P><STRONG><a name="[3e]"></a>KEY13</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY13))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY13 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY13 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY13_Handler <BR>[Called By]<UL><LI><a href="#[c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY13_Handler
</UL> </UL>
@ -687,9 +697,9 @@ Global Symbols
<P><STRONG><a name="[3f]"></a>KEY14</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY14)) <P><STRONG><a name="[3f]"></a>KEY14</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY14))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY14 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY14 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY14_Handler <BR>[Called By]<UL><LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY14_Handler
</UL> </UL>
@ -697,9 +707,9 @@ Global Symbols
<P><STRONG><a name="[40]"></a>KEY15</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY15)) <P><STRONG><a name="[40]"></a>KEY15</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY15))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY15 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY15 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY15_Handler <BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY15_Handler
</UL> </UL>
@ -707,9 +717,9 @@ Global Symbols
<P><STRONG><a name="[33]"></a>KEY2</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY2)) <P><STRONG><a name="[33]"></a>KEY2</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY2))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY2 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY2 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[17]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY2_Handler <BR>[Called By]<UL><LI><a href="#[17]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY2_Handler
</UL> </UL>
@ -717,9 +727,9 @@ Global Symbols
<P><STRONG><a name="[34]"></a>KEY3</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY3)) <P><STRONG><a name="[34]"></a>KEY3</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY3))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY3 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY3 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[16]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY3_Handler <BR>[Called By]<UL><LI><a href="#[16]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY3_Handler
</UL> </UL>
@ -727,9 +737,9 @@ Global Symbols
<P><STRONG><a name="[35]"></a>KEY4</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY4)) <P><STRONG><a name="[35]"></a>KEY4</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY4))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY4 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY4 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[15]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY4_Handler <BR>[Called By]<UL><LI><a href="#[15]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY4_Handler
</UL> </UL>
@ -737,9 +747,9 @@ Global Symbols
<P><STRONG><a name="[36]"></a>KEY5</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY5)) <P><STRONG><a name="[36]"></a>KEY5</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY5))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY5 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY5 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[14]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY5_Handler <BR>[Called By]<UL><LI><a href="#[14]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY5_Handler
</UL> </UL>
@ -747,9 +757,9 @@ Global Symbols
<P><STRONG><a name="[37]"></a>KEY6</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY6)) <P><STRONG><a name="[37]"></a>KEY6</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY6))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY6 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY6 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[13]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY6_Handler <BR>[Called By]<UL><LI><a href="#[13]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY6_Handler
</UL> </UL>
@ -757,9 +767,9 @@ Global Symbols
<P><STRONG><a name="[38]"></a>KEY7</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY7)) <P><STRONG><a name="[38]"></a>KEY7</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, code_def.o(i.KEY7))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY7 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY7 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[12]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY7_Handler <BR>[Called By]<UL><LI><a href="#[12]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY7_Handler
</UL> </UL>
@ -767,9 +777,9 @@ Global Symbols
<P><STRONG><a name="[39]"></a>KEY8</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, code_def.o(i.KEY8)) <P><STRONG><a name="[39]"></a>KEY8</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, code_def.o(i.KEY8))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY8 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY8 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[11]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY8_Handler <BR>[Called By]<UL><LI><a href="#[11]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY8_Handler
</UL> </UL>
@ -777,45 +787,49 @@ Global Symbols
<P><STRONG><a name="[3a]"></a>KEY9</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY9)) <P><STRONG><a name="[3a]"></a>KEY9</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, code_def.o(i.KEY9))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY9 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = KEY9 &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[10]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY9_Handler <BR>[Called By]<UL><LI><a href="#[10]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY9_Handler
</UL> </UL>
<P><STRONG><a name="[30]"></a>RSSIScanHandler</STRONG> (Thumb, 120 bytes, Stack size 24 bytes, code_def.o(i.RSSIScanHandler)) <P><STRONG><a name="[30]"></a>RSSIScanHandler</STRONG> (Thumb, 140 bytes, Stack size 24 bytes, code_def.o(i.RSSIScanHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 200<LI>Call Chain = RSSIScanHandler &rArr; RSSIScanscreen &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = RSSIScanHandler &rArr; RSSIScanscreen &rArr; __aeabi_dmul
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cfcmple <BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cfcmple
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d <LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd <LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2f <LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2f
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Start_FM_command
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_scan_cmd <LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_scan_cmd
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_read <LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_read
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_done <LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_done
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_Scan_Done <BR>[Called By]<UL><LI><a href="#[9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSI_Scan_Done
</UL> </UL>
<P><STRONG><a name="[6a]"></a>RSSIScanscreen</STRONG> (Thumb, 608 bytes, Stack size 120 bytes, code_def.o(i.RSSIScanscreen)) <P><STRONG><a name="[6a]"></a>RSSIScanscreen</STRONG> (Thumb, 892 bytes, Stack size 128 bytes, code_def.o(i.RSSIScanscreen))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = RSSIScanscreen &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = RSSIScanscreen &rArr; __aeabi_dmul
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor <BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cfcmple <LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cfcmple
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2f <LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2f
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f <LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2uiz <LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2uiz
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fdiv <LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cfcmpeq
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fsub <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fdiv
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fadd <LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fsub
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fadd
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d <LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdcmple <LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2uiz <LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdcmple
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd <LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2f <LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2f
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bubbling <LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bubbling
@ -836,11 +850,11 @@ Global Symbols
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler <LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
</UL> </UL>
<P><STRONG><a name="[73]"></a>ReadUART</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, code_def.o(i.ReadUART)) <P><STRONG><a name="[74]"></a>ReadUART</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, code_def.o(i.ReadUART))
<BR><BR>[Called By]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTHandle <BR><BR>[Called By]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTHandle
</UL> </UL>
<P><STRONG><a name="[76]"></a>ReadUARTState</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, code_def.o(i.ReadUARTState)) <P><STRONG><a name="[77]"></a>ReadUARTState</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, code_def.o(i.ReadUARTState))
<BR><BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WriteUART <BR><BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WriteUART
</UL> </UL>
@ -848,20 +862,21 @@ Global Symbols
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_RFD <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_RFD
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control <BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPIwrite <LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPIwrite
</UL> </UL>
<P><STRONG><a name="[72]"></a>SPIwrite</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, code_def.o(i.SPIwrite)) <P><STRONG><a name="[73]"></a>SPIwrite</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, code_def.o(i.SPIwrite))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SPIwrite &rArr; SPI_RFD <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SPIwrite &rArr; SPI_RFD
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_RFD <BR>[Calls]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_RFD
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
</UL> </UL>
<P><STRONG><a name="[55]"></a>Start_FM_command</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, code_def.o(i.Start_FM_command)) <P><STRONG><a name="[55]"></a>Start_FM_command</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, code_def.o(i.Start_FM_command))
<BR><BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control <BR><BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
</UL> </UL>
<P><STRONG><a name="[58]"></a>Stop_FM_command</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, code_def.o(i.Stop_FM_command)) <P><STRONG><a name="[58]"></a>Stop_FM_command</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, code_def.o(i.Stop_FM_command))
@ -887,10 +902,10 @@ Global Symbols
</UL> </UL>
<P><STRONG><a name="[2f]"></a>UARTHandle</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, code_def.o(i.UARTHandle)) <P><STRONG><a name="[2f]"></a>UARTHandle</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, code_def.o(i.UARTHandle))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = UARTHandle &rArr; ChannelSelection_control &rArr; singleFrequencyRSSI &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = UARTHandle &rArr; ChannelSelection_control &rArr; regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control <BR>[Calls]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadUART <LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadUART
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Handler <BR>[Called By]<UL><LI><a href="#[6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Handler
</UL> </UL>
@ -898,9 +913,9 @@ Global Symbols
<P><STRONG><a name="[56]"></a>UARTString</STRONG> (Thumb, 36 bytes, Stack size 16 bytes, code_def.o(i.UARTString)) <P><STRONG><a name="[56]"></a>UARTString</STRONG> (Thumb, 36 bytes, Stack size 16 bytes, code_def.o(i.UARTString))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = UARTString &rArr; strlen <BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = UARTString &rArr; strlen
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strlen <BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strlen
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WriteUART <LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WriteUART
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay <LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control <BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTFM_IQ_Dump_Done_Handler <LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTFM_IQ_Dump_Done_Handler
@ -927,29 +942,36 @@ Global Symbols
<P><STRONG><a name="[57]"></a>WriteUART</STRONG> (Thumb, 22 bytes, Stack size 4 bytes, code_def.o(i.WriteUART)) <P><STRONG><a name="[57]"></a>WriteUART</STRONG> (Thumb, 22 bytes, Stack size 4 bytes, code_def.o(i.WriteUART))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = WriteUART <BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = WriteUART
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadUARTState <BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadUARTState
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control <BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString <LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UARTString
</UL> </UL>
<P><STRONG><a name="[70]"></a>floor</STRONG> (Thumb, 180 bytes, Stack size 24 bytes, floor.o(i.floor)) <P><STRONG><a name="[78]"></a>floor</STRONG> (Thumb, 180 bytes, Stack size 24 bytes, floor.o(i.floor))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple <BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub <LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd <LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen </UL>
<P><STRONG><a name="[7b]"></a>initialize</STRONG> (Thumb, 54 bytes, Stack size 48 bytes, channelselection_control.o(i.initialize))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = initialize
</UL>
<BR>[Calls]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
</UL>
<BR>[Called By]<UL><LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[5e]"></a>int_to_str</STRONG> (Thumb, 170 bytes, Stack size 24 bytes, auxiliary.o(i.int_to_str)) <P><STRONG><a name="[5e]"></a>int_to_str</STRONG> (Thumb, 170 bytes, Stack size 24 bytes, auxiliary.o(i.int_to_str))
<BR><BR>[Stack]<UL><LI>Max Depth = 32 + In Cycle <BR><BR>[Stack]<UL><LI>Max Depth = 32 + In Cycle
<LI>Call Chain = int_to_str &rArr; int_to_str (Cycle) <LI>Call Chain = int_to_str &rArr; int_to_str (Cycle)
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_idivmod <BR>[Calls]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_idivmod
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int_to_str <LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int_to_str
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control <BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
@ -958,26 +980,31 @@ Global Symbols
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int_to_str <LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int_to_str
</UL> </UL>
<P><STRONG><a name="[27]"></a>main</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, main.o(i.main)) <P><STRONG><a name="[27]"></a>main</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, main.o(i.main))
<BR><BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay <BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = main &rArr; initialize
</UL>
<BR>[Calls]<UL><LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initialize
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL> </UL>
<P><STRONG><a name="[63]"></a>regWrite</STRONG> (Thumb, 96 bytes, Stack size 48 bytes, code_def.o(i.regWrite)) <P><STRONG><a name="[5f]"></a>regWrite</STRONG> (Thumb, 96 bytes, Stack size 48 bytes, code_def.o(i.regWrite))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = regWrite &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = regWrite &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor <BR>[Calls]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul <LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f <LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2iz <LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2iz
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fdiv <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fdiv
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fsub <LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fsub
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d <LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz <LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPIwrite <LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPIwrite
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY9 <BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
<LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY9
<LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY8 <LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY8
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY7 <LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY7
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY6 <LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;KEY6
@ -998,48 +1025,58 @@ Global Symbols
<P><STRONG><a name="[59]"></a>singleFrequencyRSSI</STRONG> (Thumb, 100 bytes, Stack size 40 bytes, code_def.o(i.singleFrequencyRSSI)) <P><STRONG><a name="[59]"></a>singleFrequencyRSSI</STRONG> (Thumb, 100 bytes, Stack size 40 bytes, code_def.o(i.singleFrequencyRSSI))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = singleFrequencyRSSI &rArr; floor &rArr; __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = singleFrequencyRSSI &rArr; floor &rArr; __aeabi_cdrcmple
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor <BR>[Calls]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul <LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f <LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2f
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2iz <LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2iz
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fdiv <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fdiv
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fsub <LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fsub
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d <LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz <LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPIwrite <LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPIwrite
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control <BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ChannelSelection_control
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler <LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
</UL> </UL>
<P><STRONG><a name="[6c]"></a>__aeabi_cdcmple</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, dlef.o(x$fpl$dleqf)) <P><STRONG><a name="[6d]"></a>__aeabi_cdcmple</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, dlef.o(x$fpl$dleqf))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __aeabi_cdcmple <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __aeabi_cdcmple
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
<P><STRONG><a name="[7c]"></a>_dcmple</STRONG> (Thumb, 94 bytes, Stack size 24 bytes, dlef.o(x$fpl$dleqf), UNUSED) <P><STRONG><a name="[7f]"></a>_dcmple</STRONG> (Thumb, 94 bytes, Stack size 24 bytes, dlef.o(x$fpl$dleqf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dcmp_InfNaN <BR><BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dcmp_InfNaN
</UL> </UL>
<P><STRONG><a name="[77]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 0 bytes, Stack size 32 bytes, drlef.o(x$fpl$drleqf)) <P><STRONG><a name="[79]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 0 bytes, Stack size 32 bytes, drlef.o(x$fpl$drleqf))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __aeabi_cdrcmple <BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __aeabi_cdrcmple
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor <BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;floor
</UL> </UL>
<P><STRONG><a name="[7d]"></a>_drcmple</STRONG> (Thumb, 100 bytes, Stack size 32 bytes, drlef.o(x$fpl$drleqf), UNUSED) <P><STRONG><a name="[80]"></a>_drcmple</STRONG> (Thumb, 100 bytes, Stack size 32 bytes, drlef.o(x$fpl$drleqf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dcmp_InfNaN <BR><BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_dcmp_InfNaN
</UL> </UL>
<P><STRONG><a name="[6d]"></a>__aeabi_fadd</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, faddsub.o(x$fpl$fadd)) <P><STRONG><a name="[6e]"></a>__aeabi_fadd</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, faddsub.o(x$fpl$fadd))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_fadd <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_fadd
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
<P><STRONG><a name="[7e]"></a>_fadd</STRONG> (Thumb, 134 bytes, Stack size 16 bytes, faddsub.o(x$fpl$fadd), UNUSED) <P><STRONG><a name="[81]"></a>_fadd</STRONG> (Thumb, 134 bytes, Stack size 16 bytes, faddsub.o(x$fpl$fadd), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fsub1 <BR><BR>[Calls]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fsub1
</UL>
<P><STRONG><a name="[72]"></a>__aeabi_cfcmpeq</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, feqf.o(x$fpl$feqf))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_cfcmpeq
</UL>
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL>
<P><STRONG><a name="[83]"></a>_fcmpeq</STRONG> (Thumb, 78 bytes, Stack size 8 bytes, feqf.o(x$fpl$feqf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_fcmp_InfNaN
</UL> </UL>
<P><STRONG><a name="[69]"></a>__aeabi_cfcmple</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, flef.o(x$fpl$fleqf)) <P><STRONG><a name="[69]"></a>__aeabi_cfcmple</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, flef.o(x$fpl$fleqf))
@ -1049,31 +1086,31 @@ Global Symbols
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler <LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanHandler
</UL> </UL>
<P><STRONG><a name="[80]"></a>_fcmple</STRONG> (Thumb, 78 bytes, Stack size 8 bytes, flef.o(x$fpl$fleqf), UNUSED) <P><STRONG><a name="[84]"></a>_fcmple</STRONG> (Thumb, 78 bytes, Stack size 8 bytes, flef.o(x$fpl$fleqf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_fcmp_InfNaN <BR><BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__fpl_fcmp_InfNaN
</UL> </UL>
<P><STRONG><a name="[60]"></a>__aeabi_fmul</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul)) <P><STRONG><a name="[61]"></a>__aeabi_fmul</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_fmul <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_fmul
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control <LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Channel_control
</UL> </UL>
<P><STRONG><a name="[ba]"></a>_fmul</STRONG> (Thumb, 172 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul), UNUSED) <P><STRONG><a name="[bf]"></a>_fmul</STRONG> (Thumb, 172 bytes, Stack size 16 bytes, fmul.o(x$fpl$fmul), UNUSED)
<P><STRONG><a name="[6b]"></a>__aeabi_fsub</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, faddsub.o(x$fpl$fsub)) <P><STRONG><a name="[6c]"></a>__aeabi_fsub</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, faddsub.o(x$fpl$fsub))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_fsub <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_fsub
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI <BR>[Called By]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;singleFrequencyRSSI
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite <LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;regWrite
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RSSIScanscreen
</UL> </UL>
<P><STRONG><a name="[81]"></a>_fsub</STRONG> (Thumb, 204 bytes, Stack size 16 bytes, faddsub.o(x$fpl$fsub), UNUSED) <P><STRONG><a name="[85]"></a>_fsub</STRONG> (Thumb, 204 bytes, Stack size 16 bytes, faddsub.o(x$fpl$fsub), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fadd1 <BR><BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fadd1
</UL> </UL>
<P> <P>
<H3> <H3>
@ -1091,12 +1128,12 @@ Local Symbols
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dadd <LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dadd
</UL> </UL>
<P><STRONG><a name="[82]"></a>_fadd1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, faddsub.o(x$fpl$fadd), UNUSED) <P><STRONG><a name="[86]"></a>_fadd1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, faddsub.o(x$fpl$fadd), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fsub <BR><BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fsub
</UL> </UL>
<P><STRONG><a name="[7f]"></a>_fsub1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, faddsub.o(x$fpl$fsub), UNUSED) <P><STRONG><a name="[82]"></a>_fsub1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, faddsub.o(x$fpl$fsub), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fadd <BR><BR>[Called By]<UL><LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fadd
</UL> </UL>
<P> <P>
<H3> <H3>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -117,6 +117,16 @@
<pMon>BIN\CMSIS_AGDI.dll</pMon> <pMon>BIN\CMSIS_AGDI.dll</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>CMSIS_AGDI</Key>
<Name>-X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BB11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN0</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FC1000 -FD20000000</Name>
</SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>DLGUARM</Key> <Key>DLGUARM</Key>
@ -137,16 +147,6 @@
<Key>ARMDBGFLAGS</Key> <Key>ARMDBGFLAGS</Key>
<Name></Name> <Name></Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>CMSIS_AGDI</Key>
<Name>-X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BB11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO0 -FD20000000 -FC1000 -FN0</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000)</Name>
</SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint/>
<WatchWindow1> <WatchWindow1>
@ -180,6 +180,11 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>channelcontrollist</ItemText> <ItemText>channelcontrollist</ItemText>
</Ww> </Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>channelcontrollist</ItemText>
</Ww>
</WatchWindow1> </WatchWindow1>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
@ -255,7 +260,7 @@
<GroupNumber>1</GroupNumber> <GroupNumber>1</GroupNumber>
<FileNumber>2</FileNumber> <FileNumber>2</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\src\code_def.c</PathWithFileName> <PathWithFileName>..\src\code_def.c</PathWithFileName>

View File

@ -1,21 +1,21 @@
Dependencies for Project 'MMC', Target 'Target 1': (DO NOT MODIFY !) Dependencies for Project 'MMC', Target 'Target 1': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (..\src\auxiliary.c)(0x6288D9F3)(-c --cpu Cortex-M0 -D__EVAL -g -O0 --apcs=interwork --split_sections -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include -D__UVISION_VERSION="536" -DCMSDK_CM0 -o .\auxiliary.o --omf_browse .\auxiliary.crf --depend .\auxiliary.d) F (..\src\auxiliary.c)(0x6288D9F3)(-c --cpu Cortex-M0 -D__EVAL -g -O0 --apcs=interwork --split_sections -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include -D__UVISION_VERSION="536" -DCMSDK_CM0 -o .\auxiliary.o --omf_browse .\auxiliary.crf --depend .\auxiliary.d)
I (..\src\code_def.h)(0x62BB11B0) I (..\src\code_def.h)(0x62CC3F32)
I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x6025237E) I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x6025237E)
I (D:\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E) I (D:\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E)
F (..\src\code_def.c)(0x62BBD34E)(-c --cpu Cortex-M0 -D__EVAL -g -O0 --apcs=interwork --split_sections -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include -D__UVISION_VERSION="536" -DCMSDK_CM0 -o .\code_def.o --omf_browse .\code_def.crf --depend .\code_def.d) F (..\src\code_def.c)(0x62D6C98D)(-c --cpu Cortex-M0 -D__EVAL -g -O0 --apcs=interwork --split_sections -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include -D__UVISION_VERSION="536" -DCMSDK_CM0 -o .\code_def.o --omf_browse .\code_def.crf --depend .\code_def.d)
I (..\src\code_def.h)(0x62BB11B0) I (..\src\code_def.h)(0x62CC3F32)
I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x6025237E) I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x6025237E)
I (D:\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E) I (D:\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E)
I (D:\Keil_v5\ARM\ARMCC\include\math.h)(0x60252378) I (D:\Keil_v5\ARM\ARMCC\include\math.h)(0x60252378)
F (..\src\code_def.h)(0x62BB11B0)() F (..\src\code_def.h)(0x62CC3F32)()
F (..\src\main.c)(0x62B85C66)(-c --cpu Cortex-M0 -D__EVAL -g -O0 --apcs=interwork --split_sections -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include -D__UVISION_VERSION="536" -DCMSDK_CM0 -o .\main.o --omf_browse .\main.crf --depend .\main.d) F (..\src\main.c)(0x62CC3EB3)(-c --cpu Cortex-M0 -D__EVAL -g -O0 --apcs=interwork --split_sections -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include -D__UVISION_VERSION="536" -DCMSDK_CM0 -o .\main.o --omf_browse .\main.crf --depend .\main.d)
I (..\src\code_def.h)(0x62BB11B0) I (..\src\code_def.h)(0x62CC3F32)
I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x6025237E) I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x6025237E)
I (D:\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E) I (D:\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E)
F (..\src\startup_CMSDK_CM0.s)(0x62B85B7A)(--cpu Cortex-M0 --pd "__EVAL SETA 1" -g --apcs=interwork -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include --pd "__UVISION_VERSION SETA 536" --pd "CMSDK_CM0 SETA 1" --list .\listings\startup_cmsdk_cm0.lst --xref -o .\startup_cmsdk_cm0.o --depend .\startup_cmsdk_cm0.d) F (..\src\startup_CMSDK_CM0.s)(0x62CE4475)(--cpu Cortex-M0 --pd "__EVAL SETA 1" -g --apcs=interwork -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include --pd "__UVISION_VERSION SETA 536" --pd "CMSDK_CM0 SETA 1" --list .\listings\startup_cmsdk_cm0.lst --xref -o .\startup_cmsdk_cm0.o --depend .\startup_cmsdk_cm0.d)
F (..\src\channelSelection_control.c)(0x62BBB5B7)(-c --cpu Cortex-M0 -D__EVAL -g -O0 --apcs=interwork --split_sections -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include -D__UVISION_VERSION="536" -DCMSDK_CM0 -o .\channelselection_control.o --omf_browse .\channelselection_control.crf --depend .\channelselection_control.d) F (..\src\channelSelection_control.c)(0x62D4FC03)(-c --cpu Cortex-M0 -D__EVAL -g -O0 --apcs=interwork --split_sections -IC:\Users\JefferyLi\AppData\Local\Arm\Packs\Keil\V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM0\Include -D__UVISION_VERSION="536" -DCMSDK_CM0 -o .\channelselection_control.o --omf_browse .\channelselection_control.crf --depend .\channelselection_control.d)
I (..\src\code_def.h)(0x62BB11B0) I (..\src\code_def.h)(0x62CC3F32)
I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x6025237E) I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x6025237E)
I (D:\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E) I (D:\Keil_v5\ARM\ARMCC\include\string.h)(0x6025237E)

View File

@ -2,14 +2,14 @@
; *** Scatter-Loading Description File generated by uVision *** ; *** Scatter-Loading Description File generated by uVision ***
; ************************************************************* ; *************************************************************
LR_IROM1 0x00000000 0x00100000 { ; load region size_region LR_IROM1 0x00000000 0x00400000 { ; load region size_region
ER_IROM1 0x00000000 0x00100000 { ; load address = execution address ER_IROM1 0x00000000 0x00400000 { ; load address = execution address
*.o (RESET, +First) *.o (RESET, +First)
*(InRoot$$Sections) *(InRoot$$Sections)
.ANY (+RO) .ANY (+RO)
.ANY (+XO) .ANY (+XO)
} }
RW_IRAM1 0x20000000 0x00100000 { ; RW data RW_IRAM1 0x20000000 0x00400000 { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)
} }
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Project Version="1" Path="D:/Documents/MMC/project"> <Project Version="1" Path="D:/Documents/MMC/project">
<Project_Created_Time>2022-06-25 10:35:14</Project_Created_Time> <Project_Created_Time>2022-07-11 21:44:56</Project_Created_Time>
<TD_Version>5.0.43066</TD_Version> <TD_Version>5.0.43066</TD_Version>
<UCode>11111100</UCode> <UCode>11100000</UCode>
<Name>MMC</Name> <Name>MMC</Name>
<HardWare> <HardWare>
<Family>EG4</Family> <Family>EG4</Family>
@ -223,7 +223,7 @@
<Attr Name="UsedInSyn" Val="true"/> <Attr Name="UsedInSyn" Val="true"/>
<Attr Name="UsedInP&R" Val="true"/> <Attr Name="UsedInP&R" Val="true"/>
<Attr Name="BelongTo" Val="design_1"/> <Attr Name="BelongTo" Val="design_1"/>
<Attr Name="CompileOrder" Val="29"/> <Attr Name="CompileOrder" Val="28"/>
</FileInfo> </FileInfo>
</File> </File>
<File Path="../rtl/peripherals/KeyScan.v"> <File Path="../rtl/peripherals/KeyScan.v">
@ -231,7 +231,7 @@
<Attr Name="UsedInSyn" Val="true"/> <Attr Name="UsedInSyn" Val="true"/>
<Attr Name="UsedInP&R" Val="true"/> <Attr Name="UsedInP&R" Val="true"/>
<Attr Name="BelongTo" Val="design_1"/> <Attr Name="BelongTo" Val="design_1"/>
<Attr Name="CompileOrder" Val="30"/> <Attr Name="CompileOrder" Val="29"/>
</FileInfo> </FileInfo>
</File> </File>
</Verilog> </Verilog>
@ -241,7 +241,7 @@
<Attr Name="UsedInSyn" Val="true"/> <Attr Name="UsedInSyn" Val="true"/>
<Attr Name="UsedInP&R" Val="true"/> <Attr Name="UsedInP&R" Val="true"/>
<Attr Name="BelongTo" Val="design_1"/> <Attr Name="BelongTo" Val="design_1"/>
<Attr Name="CompileOrder" Val="28"/> <Attr Name="CompileOrder" Val="27"/>
</FileInfo> </FileInfo>
</File> </File>
</Header> </Header>
@ -255,16 +255,6 @@
</FileInfo> </FileInfo>
</File> </File>
</ADC_FILE> </ADC_FILE>
<CWC_FILE>
<File Path="rssi.cwc">
<FileInfo>
<Attr Name="UsedInSyn" Val="true"/>
<Attr Name="UsedInP&R" Val="true"/>
<Attr Name="BelongTo" Val="design_1"/>
<Attr Name="CompileOrder" Val="27"/>
</FileInfo>
</File>
</CWC_FILE>
</Source_Files> </Source_Files>
<FileSets> <FileSets>
<FileSet Name="constrain_1" Type="ConstrainFiles"> <FileSet Name="constrain_1" Type="ConstrainFiles">
@ -299,7 +289,7 @@
<Configurations> <Configurations>
</Configurations> </Configurations>
<Project_Settings> <Project_Settings>
<Step_Last_Change>2022-06-29 12:53:13.536</Step_Last_Change> <Step_Last_Change>2022-07-22 13:39:39.195</Step_Last_Change>
<Current_Step>60</Current_Step> <Current_Step>60</Current_Step>
<Step_Status>true</Step_Status> <Step_Status>true</Step_Status>
</Project_Settings> </Project_Settings>

Binary file not shown.

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<All_Bram_Infos> <All_Bram_Infos>
<Ucode>11111100</Ucode> <Ucode>11100000</Ucode>
<AL_PHY_BRAM> <AL_PHY_BRAM>
<INST_1> <INST_1>
<rid>0X0004</rid> <rid>0X0004</rid>
@ -995,192 +995,4 @@
</sub_bid_info> </sub_bid_info>
</INST_32> </INST_32>
</AL_PHY_BRAM> </AL_PHY_BRAM>
<AL_PHY_BRAM32K>
<INST_1>
<rid>0X0024</rid>
<wid>0X0024</wid>
<is_debuggable>y</is_debuggable>
<is_initialize>n</is_initialize>
<model_type>AL_PHY_BRAM32K</model_type>
<name>auto_chipwatcher_0_logicbram_4096x48_sub_000000_000</name>
<width_a>8</width_a>
<width_b>8</width_b>
<logic_name>auto_chipwatcher_0_logicbram</logic_name>
<logic_width>48</logic_width>
<logic_depth>4096</logic_depth>
<sub_bid_info>
<address_offset>0</address_offset>
<data_offset>0</data_offset>
<depth>4096</depth>
<width>8</width>
<num_section>1</num_section>
<section_size>48</section_size>
<width_per_section>8</width_per_section>
<bytes_in_per_section>1</bytes_in_per_section>
<working_mode>
<address_step>1</address_step>
<depth>4096</depth>
<mode_type>113</mode_type>
<width>8</width>
<num_byte>1</num_byte>
<ecc>0</ecc>
</working_mode>
</sub_bid_info>
</INST_1>
<INST_2>
<rid>0X0028</rid>
<wid>0X0028</wid>
<is_debuggable>y</is_debuggable>
<is_initialize>n</is_initialize>
<model_type>AL_PHY_BRAM32K</model_type>
<name>auto_chipwatcher_0_logicbram_4096x48_sub_000000_008</name>
<width_a>8</width_a>
<width_b>8</width_b>
<logic_name>auto_chipwatcher_0_logicbram</logic_name>
<logic_width>48</logic_width>
<logic_depth>4096</logic_depth>
<sub_bid_info>
<address_offset>0</address_offset>
<data_offset>8</data_offset>
<depth>4096</depth>
<width>8</width>
<num_section>1</num_section>
<section_size>48</section_size>
<width_per_section>8</width_per_section>
<bytes_in_per_section>1</bytes_in_per_section>
<working_mode>
<address_step>1</address_step>
<depth>4096</depth>
<mode_type>113</mode_type>
<width>8</width>
<num_byte>1</num_byte>
<ecc>0</ecc>
</working_mode>
</sub_bid_info>
</INST_2>
<INST_3>
<rid>0X002C</rid>
<wid>0X002C</wid>
<is_debuggable>y</is_debuggable>
<is_initialize>n</is_initialize>
<model_type>AL_PHY_BRAM32K</model_type>
<name>auto_chipwatcher_0_logicbram_4096x48_sub_000000_016</name>
<width_a>8</width_a>
<width_b>8</width_b>
<logic_name>auto_chipwatcher_0_logicbram</logic_name>
<logic_width>48</logic_width>
<logic_depth>4096</logic_depth>
<sub_bid_info>
<address_offset>0</address_offset>
<data_offset>16</data_offset>
<depth>4096</depth>
<width>8</width>
<num_section>1</num_section>
<section_size>48</section_size>
<width_per_section>8</width_per_section>
<bytes_in_per_section>1</bytes_in_per_section>
<working_mode>
<address_step>1</address_step>
<depth>4096</depth>
<mode_type>113</mode_type>
<width>8</width>
<num_byte>1</num_byte>
<ecc>0</ecc>
</working_mode>
</sub_bid_info>
</INST_3>
<INST_4>
<rid>0X0030</rid>
<wid>0X0030</wid>
<is_debuggable>y</is_debuggable>
<is_initialize>n</is_initialize>
<model_type>AL_PHY_BRAM32K</model_type>
<name>auto_chipwatcher_0_logicbram_4096x48_sub_000000_024</name>
<width_a>8</width_a>
<width_b>8</width_b>
<logic_name>auto_chipwatcher_0_logicbram</logic_name>
<logic_width>48</logic_width>
<logic_depth>4096</logic_depth>
<sub_bid_info>
<address_offset>0</address_offset>
<data_offset>24</data_offset>
<depth>4096</depth>
<width>8</width>
<num_section>1</num_section>
<section_size>48</section_size>
<width_per_section>8</width_per_section>
<bytes_in_per_section>1</bytes_in_per_section>
<working_mode>
<address_step>1</address_step>
<depth>4096</depth>
<mode_type>113</mode_type>
<width>8</width>
<num_byte>1</num_byte>
<ecc>0</ecc>
</working_mode>
</sub_bid_info>
</INST_4>
<INST_5>
<rid>0X0034</rid>
<wid>0X0034</wid>
<is_debuggable>y</is_debuggable>
<is_initialize>n</is_initialize>
<model_type>AL_PHY_BRAM32K</model_type>
<name>auto_chipwatcher_0_logicbram_4096x48_sub_000000_032</name>
<width_a>8</width_a>
<width_b>8</width_b>
<logic_name>auto_chipwatcher_0_logicbram</logic_name>
<logic_width>48</logic_width>
<logic_depth>4096</logic_depth>
<sub_bid_info>
<address_offset>0</address_offset>
<data_offset>32</data_offset>
<depth>4096</depth>
<width>8</width>
<num_section>1</num_section>
<section_size>48</section_size>
<width_per_section>8</width_per_section>
<bytes_in_per_section>1</bytes_in_per_section>
<working_mode>
<address_step>1</address_step>
<depth>4096</depth>
<mode_type>113</mode_type>
<width>8</width>
<num_byte>1</num_byte>
<ecc>0</ecc>
</working_mode>
</sub_bid_info>
</INST_5>
<INST_6>
<rid>0X0038</rid>
<wid>0X0038</wid>
<is_debuggable>y</is_debuggable>
<is_initialize>n</is_initialize>
<model_type>AL_PHY_BRAM32K</model_type>
<name>auto_chipwatcher_0_logicbram_4096x48_sub_000000_040</name>
<width_a>8</width_a>
<width_b>8</width_b>
<logic_name>auto_chipwatcher_0_logicbram</logic_name>
<logic_width>48</logic_width>
<logic_depth>4096</logic_depth>
<sub_bid_info>
<address_offset>0</address_offset>
<data_offset>40</data_offset>
<depth>4096</depth>
<width>8</width>
<num_section>1</num_section>
<section_size>48</section_size>
<width_per_section>8</width_per_section>
<bytes_in_per_section>1</bytes_in_per_section>
<working_mode>
<address_step>1</address_step>
<depth>4096</depth>
<mode_type>113</mode_type>
<width>8</width>
<num_byte>1</num_byte>
<ecc>0</ecc>
</working_mode>
</sub_bid_info>
</INST_6>
</AL_PHY_BRAM32K>
</All_Bram_Infos> </All_Bram_Infos>

View File

@ -8,24 +8,24 @@ IO Statistics
#inout 1 #inout 1
Utilization Statistics Utilization Statistics
#lut 17402 out of 19600 88.79% #lut 17019 out of 19600 86.83%
#reg 2517 out of 19600 12.84% #reg 2074 out of 19600 10.58%
#le 17610 #le 17133
#lut only 15093 out of 17610 85.71% #lut only 15059 out of 17133 87.89%
#reg only 208 out of 17610 1.18% #reg only 114 out of 17133 0.67%
#lut&reg 2309 out of 17610 13.11% #lut&reg 1960 out of 17133 11.44%
#dsp 26 out of 29 89.66% #dsp 26 out of 29 89.66%
#bram 32 out of 64 50.00% #bram 32 out of 64 50.00%
#bram9k 32 #bram9k 32
#fifo9k 0 #fifo9k 0
#bram32k 6 out of 16 37.50% #bram32k 0 out of 16 0.00%
#adc 1 out of 1 100.00% #adc 1 out of 1 100.00%
#pad 39 out of 186 20.97% #pad 39 out of 186 20.97%
#ireg 0 #ireg 0
#oreg 0 #oreg 0
#treg 0 #treg 0
#pll 2 out of 4 50.00% #pll 2 out of 4 50.00%
#gclk 14 out of 16 87.50% #gclk 13 out of 16 81.25%
Detailed IO Report Detailed IO Report
@ -75,20 +75,20 @@ Report Hierarchy Area:
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
|Instance |Module |le |lut |ripple |seq |bram |dsp | |Instance |Module |le |lut |ripple |seq |bram |dsp |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
|top |CortexM0_SoC |17610 |16929 |473 |2517 |38 |26 | |top |CortexM0_SoC |17133 |16646 |373 |2074 |32 |26 |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
DataNet Average Fanout: DataNet Average Fanout:
Index Fanout Nets Index Fanout Nets
#1 1 15657 #1 1 15257
#2 2 10209 #2 2 10084
#3 3 657 #3 3 525
#4 4 524 #4 4 510
#5 5-10 653 #5 5-10 633
#6 11-50 473 #6 11-50 463
#7 51-100 36 #7 51-100 35
#8 101-500 9 #8 101-500 7
#9 >500 18 #9 >500 18
Average 3.09 Average 3.11

File diff suppressed because it is too large Load Diff

View File

@ -1,407 +1,401 @@
eagle_s20 eagle_s20
12 22 687 18594 896242330 9 0 12 22 1021 17132 932245162 9 0
-13.826 0.304 CortexM0_SoC eagle_s20 BG256 Detail 8 1 -10.123 0.281 CortexM0_SoC eagle_s20 BG256 Detail 8 1
clock: DeriveClock clock: DeriveClock
12 896242330 18594 4 12 932245162 17132 4
Setup check Setup check
22 3 22 3
Endpoint: FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4 Endpoint: FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5
22 -13.826000 48997858 3 22 -10.123000 48096076 3
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4 Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5
u_logic/P5vpw6_reg.clk u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4 FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5
24 -13.826000 19.884000 33.710000 24 24 24 -10.123000 19.884000 30.007000 23 23
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0] u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0] u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1] u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1] u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1] u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1] u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1] u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1] u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1] u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1] u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0] u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0] u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0] u_logic/N5fpw6[7] u_logic/_al_u2517|u_logic/_al_u2533.d[1]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1] u_logic/_al_u2517_o u_logic/_al_u2518|u_logic/Vpgbx6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0] u_logic/_al_u2518_o RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.b[1]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r478_c1_m0.d[0] HADDR[8] FM_HW/_al_u3810|FM_HW/_al_u668.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i478_004 FM_HW/_al_u3089|FM_HW/_al_u3091.b[0] FM_HW/_al_u668_o FM_HW/_al_u2914|FM_HW/_al_u2383.b[1]
FM_HW/_al_u3091_o FM_HW/_al_u3090|FM_HW/_al_u3092.c[0] FM_HW/_al_u2914_o FM_HW/_al_u2919.a[1]
FM_HW/_al_u3092_o FM_HW/_al_u2670|FM_HW/_al_u3093.b[0] FM_HW/_al_u2919_o FM_HW/_al_u2387|FM_HW/_al_u2923.b[0]
FM_HW/_al_u3093_o FM_HW/_al_u1562|FM_HW/_al_u3094.c[0] FM_HW/_al_u2923_o FM_HW/_al_u2944.a[1]
FM_HW/_al_u3094_o FM_HW/_al_u3115.a[1] FM_HW/_al_u2944_o scan_unit/reg2_b15|scan_unit/reg2_b29.a[1]
FM_HW/_al_u3115_o FM_HW/_al_u1583|FM_HW/FM_Demodulation/reg5_b57.a[0] FM_HW/_al_u2987_o FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5.b[0]
FM_HW/_al_u3159_o FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4.a[0]
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4 Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5
u_logic/P5vpw6_reg.clk u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4 FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5
97 -13.826000 19.884000 33.710000 24 24 95 -10.123000 19.884000 30.007000 23 23
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0] u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0] u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1] u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[0]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r478_c1_m0.d[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i478_004 FM_HW/_al_u3089|FM_HW/_al_u3091.b[0]
FM_HW/_al_u3091_o FM_HW/_al_u3090|FM_HW/_al_u3092.c[0]
FM_HW/_al_u3092_o FM_HW/_al_u2670|FM_HW/_al_u3093.b[0]
FM_HW/_al_u3093_o FM_HW/_al_u1562|FM_HW/_al_u3094.c[0]
FM_HW/_al_u3094_o FM_HW/_al_u3115.a[1]
FM_HW/_al_u3115_o FM_HW/_al_u1583|FM_HW/FM_Demodulation/reg5_b57.a[0]
FM_HW/_al_u3159_o FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4.a[0]
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4
u_logic/P5vpw6_reg.clk
FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4
170 -13.826000 19.884000 33.710000 24 24
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0]
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1] u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1] u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1] u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1] u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1] u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1] u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1] u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0] u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0] u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0] u_logic/N5fpw6[7] u_logic/_al_u2517|u_logic/_al_u2533.d[1]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1] u_logic/_al_u2517_o u_logic/_al_u2518|u_logic/Vpgbx6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0] u_logic/_al_u2518_o RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.b[1]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r478_c1_m0.d[0] HADDR[8] FM_HW/_al_u3810|FM_HW/_al_u668.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i478_004 FM_HW/_al_u3089|FM_HW/_al_u3091.b[0] FM_HW/_al_u668_o FM_HW/_al_u2914|FM_HW/_al_u2383.b[1]
FM_HW/_al_u3091_o FM_HW/_al_u3090|FM_HW/_al_u3092.c[0] FM_HW/_al_u2914_o FM_HW/_al_u2919.a[0]
FM_HW/_al_u3092_o FM_HW/_al_u2670|FM_HW/_al_u3093.b[0] FM_HW/_al_u2919_o FM_HW/_al_u2387|FM_HW/_al_u2923.b[0]
FM_HW/_al_u3093_o FM_HW/_al_u1562|FM_HW/_al_u3094.c[0] FM_HW/_al_u2923_o FM_HW/_al_u2944.a[1]
FM_HW/_al_u3094_o FM_HW/_al_u3115.a[0] FM_HW/_al_u2944_o scan_unit/reg2_b15|scan_unit/reg2_b29.a[1]
FM_HW/_al_u3115_o FM_HW/_al_u1583|FM_HW/FM_Demodulation/reg5_b57.a[0] FM_HW/_al_u2987_o FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5.b[0]
FM_HW/_al_u3159_o FM_HW/FM_Dump_Data_IQ/reg0_b1|FM_HW/FM_Dump_Data_IQ/reg0_b4.a[0]
Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5
Endpoint: FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7 u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
243 -13.737000 33724860 3 FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7 166 -10.123000 19.884000 30.007000 23 23
u_logic/P5vpw6_reg.clk u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7 u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
245 -13.737000 19.884000 33.621000 24 24 u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0]
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1] u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1] u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1] u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1] u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1] u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1] u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1] u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0] u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0] u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0] u_logic/N5fpw6[7] u_logic/_al_u2517|u_logic/_al_u2533.d[1]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1] u_logic/_al_u2517_o u_logic/_al_u2518|u_logic/Vpgbx6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0] u_logic/_al_u2518_o RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.b[1]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r399_c1_m1.d[1] HADDR[8] FM_HW/_al_u3810|FM_HW/_al_u668.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i399_007 FM_HW/_al_u2331|FM_HW/_al_u2330.b[0] FM_HW/_al_u668_o FM_HW/_al_u2914|FM_HW/_al_u2383.b[1]
FM_HW/_al_u2330_o FM_HW/_al_u2331|FM_HW/_al_u2330.c[1] FM_HW/_al_u2914_o FM_HW/_al_u2919.a[1]
FM_HW/_al_u2331_o FM_HW/FM_Demodulation/reg5_b19|FM_HW/FM_Demodulation/reg5_b18.b[1] FM_HW/_al_u2919_o FM_HW/_al_u2387|FM_HW/_al_u2923.b[0]
FM_HW/_al_u2334_o FM_HW/_al_u2338.b[1] FM_HW/_al_u2923_o FM_HW/_al_u2944.a[0]
FM_HW/_al_u2338_o FM_HW/FM_Demodulation/reg5_b53|FM_HW/FM_Demodulation/reg5_b59.b[1] FM_HW/_al_u2944_o scan_unit/reg2_b15|scan_unit/reg2_b29.a[1]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b7/B6_3 FM_HW/_al_u2380|FM_HW/_al_u850.b[1] FM_HW/_al_u2987_o FM_HW/_al_u3394|FM_HW/FM_Dump_Data_IQ/reg0_b5.b[0]
FM_HW/_al_u2380_o FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7.c[0]
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7
u_logic/P5vpw6_reg.clk
FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7
318 -13.737000 19.884000 33.621000 24 24
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0]
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[0]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r399_c1_m1.d[1]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i399_007 FM_HW/_al_u2331|FM_HW/_al_u2330.b[0]
FM_HW/_al_u2330_o FM_HW/_al_u2331|FM_HW/_al_u2330.c[1]
FM_HW/_al_u2331_o FM_HW/FM_Demodulation/reg5_b19|FM_HW/FM_Demodulation/reg5_b18.b[1]
FM_HW/_al_u2334_o FM_HW/_al_u2338.b[1]
FM_HW/_al_u2338_o FM_HW/FM_Demodulation/reg5_b53|FM_HW/FM_Demodulation/reg5_b59.b[1]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b7/B6_3 FM_HW/_al_u2380|FM_HW/_al_u850.b[1]
FM_HW/_al_u2380_o FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7.c[0]
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7 Endpoint: FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7
u_logic/P5vpw6_reg.clk 237 -9.884000 41516211 3
FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7 Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7
391 -13.737000 19.884000 33.621000 24 24 u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0] FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0] 239 -9.884000 19.884000 29.768000 23 23
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1] u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1] u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1] u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1] u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1] u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1] u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1] u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1] u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0] u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0] u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0] u_logic/N5fpw6[7] u_logic/_al_u2517|u_logic/_al_u2533.d[1]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1] u_logic/_al_u2517_o u_logic/_al_u2518|u_logic/Vpgbx6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0] u_logic/_al_u2518_o RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.b[1]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r399_c1_m1.d[1] HADDR[8] FM_HW/_al_u3810|FM_HW/_al_u668.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i399_007 FM_HW/_al_u2331|FM_HW/_al_u2330.b[0] FM_HW/_al_u668_o FM_HW/_al_u2046|FM_HW/_al_u3360.b[1]
FM_HW/_al_u2330_o FM_HW/_al_u2331|FM_HW/_al_u2330.c[1] FM_HW/_al_u2046_o FM_HW/_al_u2051|FM_HW/_al_u3361.a[1]
FM_HW/_al_u2331_o FM_HW/FM_Demodulation/reg5_b19|FM_HW/FM_Demodulation/reg5_b18.b[1] FM_HW/_al_u2051_o FM_HW/_al_u2058.b[1]
FM_HW/_al_u2334_o FM_HW/_al_u2338.b[0] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b7/B4_8 FM_HW/_al_u2079.a[1]
FM_HW/_al_u2338_o FM_HW/FM_Demodulation/reg5_b53|FM_HW/FM_Demodulation/reg5_b59.b[1] FM_HW/_al_u2079_o scan_unit/reg2_b15|scan_unit/reg2_b29.a[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b7/B6_3 FM_HW/_al_u2380|FM_HW/_al_u850.b[1] FM_HW/_al_u2123_o FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7.a[0]
FM_HW/_al_u2380_o FM_HW/_al_u3650|FM_HW/FM_Dump_Data_IQ/reg0_b7.c[0]
Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7
Endpoint: FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5 u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
464 -13.686000 37671203 3 FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5 310 -9.884000 19.884000 29.768000 23 23
u_logic/P5vpw6_reg.clk u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5 u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
466 -13.686000 19.884000 33.570000 24 24 u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0]
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1] u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1] u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1] u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1] u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1] u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1] u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1] u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0] u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0] u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0] u_logic/N5fpw6[7] u_logic/_al_u2517|u_logic/_al_u2533.d[1]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1] u_logic/_al_u2517_o u_logic/_al_u2518|u_logic/Vpgbx6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0] u_logic/_al_u2518_o RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.b[1]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r475_c1_m0.d[1] HADDR[8] FM_HW/_al_u3810|FM_HW/_al_u668.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i475_005 FM_HW/_al_u2351|FM_HW/_al_u3012.b[0] FM_HW/_al_u668_o FM_HW/_al_u2046|FM_HW/_al_u3360.b[1]
FM_HW/_al_u3012_o FM_HW/_al_u3013|FM_HW/_al_u2666.c[1] FM_HW/_al_u2046_o FM_HW/_al_u2051|FM_HW/_al_u3361.a[1]
FM_HW/_al_u3013_o FM_HW/_al_u3016.b[1] FM_HW/_al_u2051_o FM_HW/_al_u2058.b[0]
FM_HW/_al_u3016_o FM_HW/_al_u1918|FM_HW/_al_u3019.a[0] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b7/B4_8 FM_HW/_al_u2079.a[1]
FM_HW/_al_u3019_o FM_HW/_al_u3030|FM_HW/_al_u795.b[1] FM_HW/_al_u2079_o scan_unit/reg2_b15|scan_unit/reg2_b29.a[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b5/B5_7 FM_HW/_al_u3158|FM_HW/FM_Demodulation/reg5_b52.a[0] FM_HW/_al_u2123_o FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7.a[0]
FM_HW/_al_u3072_o FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5.c[0]
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5 Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7
u_logic/P5vpw6_reg.clk u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5 FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7
539 -13.686000 19.884000 33.570000 24 24 381 -9.884000 19.884000 29.768000 23 23
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0] u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0] u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1] u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[0]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r475_c1_m0.d[1]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i475_005 FM_HW/_al_u2351|FM_HW/_al_u3012.b[0]
FM_HW/_al_u3012_o FM_HW/_al_u3013|FM_HW/_al_u2666.c[1]
FM_HW/_al_u3013_o FM_HW/_al_u3016.b[1]
FM_HW/_al_u3016_o FM_HW/_al_u1918|FM_HW/_al_u3019.a[0]
FM_HW/_al_u3019_o FM_HW/_al_u3030|FM_HW/_al_u795.b[1]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b5/B5_7 FM_HW/_al_u3158|FM_HW/FM_Demodulation/reg5_b52.a[0]
FM_HW/_al_u3072_o FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5.c[0]
Timing path: u_logic/P5vpw6_reg.clk->FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5
u_logic/P5vpw6_reg.clk
FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5
612 -13.686000 19.884000 33.570000 24 24
u_logic/P5vpw6 cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b7|cw_top/wrapper_cwc_top/trigger_inst/HAS_BUS_DETECTOR$BUS_DETECTOR[0]$bus_detector_inst1/reg0_b6.b[0]
u_logic/Llaow6_lutinv u_logic/_al_u1671|u_logic/_al_u2549.a[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/Fpnpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1] u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u1730.a[1] u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u159.a[1] u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u4431.d[1] u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2892.d[1] u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/_al_u2882.d[1] u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u2759.d[1] u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643.d[0] u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0] u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci u_logic/add2/c3 u_logic/add2/u3_al_u4810.fci
u_logic/N5fpw6[4] u_logic/_al_u4753|u_logic/_al_u2604.c[0] u_logic/N5fpw6[7] u_logic/_al_u2517|u_logic/_al_u2533.d[1]
u_logic/_al_u2604_o u_logic/_al_u2605|u_logic/Ibqpw6_reg.d[1] u_logic/_al_u2517_o u_logic/_al_u2518|u_logic/Vpgbx6_reg.d[1]
u_logic/_al_u2605_o u_logic/_al_u3990|RAMDATA_Interface/reg0_b3.b[0] u_logic/_al_u2518_o RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.b[1]
HADDR[5] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r475_c1_m0.d[1] HADDR[8] FM_HW/_al_u3810|FM_HW/_al_u668.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i475_005 FM_HW/_al_u2351|FM_HW/_al_u3012.b[0] FM_HW/_al_u668_o FM_HW/_al_u2046|FM_HW/_al_u3360.b[1]
FM_HW/_al_u3012_o FM_HW/_al_u3013|FM_HW/_al_u2666.c[1] FM_HW/_al_u2046_o FM_HW/_al_u2051|FM_HW/_al_u3361.a[1]
FM_HW/_al_u3013_o FM_HW/_al_u3016.b[0] FM_HW/_al_u2051_o FM_HW/_al_u2058.b[1]
FM_HW/_al_u3016_o FM_HW/_al_u1918|FM_HW/_al_u3019.a[0] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b7/B4_8 FM_HW/_al_u2079.a[0]
FM_HW/_al_u3019_o FM_HW/_al_u3030|FM_HW/_al_u795.b[1] FM_HW/_al_u2079_o scan_unit/reg2_b15|scan_unit/reg2_b29.a[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b5/B5_7 FM_HW/_al_u3158|FM_HW/FM_Demodulation/reg5_b52.a[0] FM_HW/_al_u2123_o FM_HW/_al_u3595|FM_HW/FM_Dump_Data_IQ/reg0_b7.a[0]
FM_HW/_al_u3072_o FM_HW/_al_u3584|FM_HW/FM_Dump_Data_IQ/reg0_b5.c[0]
Endpoint: FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0
452 -9.343000 45834844 3
Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0
u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0
454 -9.343000 19.884000 29.227000 23 23
u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/N5fpw6[3] u_logic/_al_u2521|u_logic/_al_u2614.d[0]
u_logic/_al_u2614_o u_logic/_al_u2615|u_logic/_al_u2597.d[1]
u_logic/_al_u2615_o u_logic/_al_u4348|RAMDATA_Interface/reg0_b2.b[0]
HADDR[4] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r443_c0_m0.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i443_000 FM_HW/_al_u3138|FM_HW/_al_u1898.b[0]
FM_HW/_al_u1898_o FM_HW/_al_u1899|FM_HW/_al_u2369.c[1]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b0/B1_110 FM_HW/_al_u1902|FM_HW/_al_u1577.a[1]
FM_HW/_al_u1902_o FM_HW/_al_u3146|FM_HW/_al_u1907.a[0]
FM_HW/_al_u1907_o FM_HW/_al_u1908.c[1]
FM_HW/_al_u1908_o FM_HW/_al_u1950.a[1]
FM_HW/_al_u1950_o FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0.c[0]
Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0
u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0
525 -9.343000 19.884000 29.227000 23 23
u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/N5fpw6[3] u_logic/_al_u2521|u_logic/_al_u2614.d[0]
u_logic/_al_u2614_o u_logic/_al_u2615|u_logic/_al_u2597.d[1]
u_logic/_al_u2615_o u_logic/_al_u4348|RAMDATA_Interface/reg0_b2.b[0]
HADDR[4] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r443_c0_m0.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i443_000 FM_HW/_al_u3138|FM_HW/_al_u1898.b[0]
FM_HW/_al_u1898_o FM_HW/_al_u1899|FM_HW/_al_u2369.c[1]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b0/B1_110 FM_HW/_al_u1902|FM_HW/_al_u1577.a[1]
FM_HW/_al_u1902_o FM_HW/_al_u3146|FM_HW/_al_u1907.a[0]
FM_HW/_al_u1907_o FM_HW/_al_u1908.c[0]
FM_HW/_al_u1908_o FM_HW/_al_u1950.a[1]
FM_HW/_al_u1950_o FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0.c[0]
Timing path: u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk->FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0
u_logic/Wkipw6_reg|u_logic/U9ypw6_reg.clk
FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0
596 -9.343000 19.884000 29.227000 23 23
u_logic/U9ypw6 u_logic/_al_u708|u_logic/_al_u2324.c[1]
u_logic/Ya1ju6_lutinv u_logic/_al_u2451|u_logic/_al_u2549.b[0]
u_logic/_al_u2549_o u_logic/_al_u2551|u_logic/R3vpw6_reg.a[1]
u_logic/_al_u2551_o u_logic/_al_u2552.a[1]
u_logic/_al_u2552_o u_logic/_al_u2556|u_logic/_al_u2555.a[1]
u_logic/_al_u2556_o u_logic/_al_u2563|u_logic/_al_u641.a[1]
u_logic/_al_u2563_o u_logic/_al_u2564|u_logic/_al_u411.d[1]
u_logic/_al_u2564_o u_logic/_al_u2565|u_logic/_al_u2847.d[1]
u_logic/_al_u2565_o u_logic/_al_u2566|u_logic/J0iax6_reg.d[1]
u_logic/_al_u2566_o u_logic/_al_u2641|u_logic/_al_u4457.d[1]
u_logic/Vtzhu6 u_logic/_al_u2643|u_logic/_al_u954.d[1]
u_logic/R0ghu6 u_logic/add2/ucin_al_u4809.b[0]
u_logic/N5fpw6[3] u_logic/_al_u2521|u_logic/_al_u2614.d[0]
u_logic/_al_u2614_o u_logic/_al_u2615|u_logic/_al_u2597.d[1]
u_logic/_al_u2615_o u_logic/_al_u4348|RAMDATA_Interface/reg0_b2.b[0]
HADDR[4] FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_r443_c0_m0.c[0]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_i443_000 FM_HW/_al_u3138|FM_HW/_al_u1898.b[0]
FM_HW/_al_u1898_o FM_HW/_al_u1899|FM_HW/_al_u2369.c[1]
FM_HW/FM_Dump_Data_IQ/al_ram_mem_IQ_do_mux_b0/B1_110 FM_HW/_al_u1902|FM_HW/_al_u1577.a[1]
FM_HW/_al_u1902_o FM_HW/_al_u3146|FM_HW/_al_u1907.a[0]
FM_HW/_al_u1907_o FM_HW/_al_u1908.c[1]
FM_HW/_al_u1908_o FM_HW/_al_u1950.a[0]
FM_HW/_al_u1950_o FM_HW/_al_u1512|FM_HW/FM_Dump_Data_IQ/reg0_b0.c[0]
Hold check Hold check
685 3 667 3
Endpoint: SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l Endpoint: UART_TX/FIFO/al_ram_mem_c1_l
687 0.304000 94 3 669 0.284000 95 3
Timing path: _al_u270|SPI_TX/FIFO_SPI/reg1_b0.clk->SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l Timing path: UART_TX/FIFO/reg1_b1|UART_TX/FIFO/reg1_b3.clk->UART_TX/FIFO/al_ram_mem_c1_l
_al_u270|SPI_TX/FIFO_SPI/reg1_b0.clk UART_TX/FIFO/reg1_b1|UART_TX/FIFO/reg1_b3.clk
SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l UART_TX/FIFO/al_ram_mem_c1_l
689 0.304000 0.134000 0.438000 1 1 671 0.284000 0.134000 0.418000 1 1
SPI_TX/FIFO_SPI/wp[0] SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l.a[0] UART_TX/FIFO/wp[3] UART_TX/FIFO/al_ram_mem_c1_l.d[0]
Timing path: UART_Interface/rd_en_reg_reg|SPI_Interface/wr_en_reg_reg.clk->SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l Timing path: _al_u240|UART_Interface/wr_en_reg_reg.clk->UART_TX/FIFO/al_ram_mem_c1_l
UART_Interface/rd_en_reg_reg|SPI_Interface/wr_en_reg_reg.clk _al_u240|UART_Interface/wr_en_reg_reg.clk
SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l UART_TX/FIFO/al_ram_mem_c1_l
716 1.596000 0.134000 1.730000 2 2 698 1.092000 0.134000 1.226000 2 2
SPI_Interface/wr_en_reg _al_u128|_al_u130.d[1] UART_Interface/wr_en_reg _al_u121|UART_RX/counter_en_reg.d[1]
SPI_TX_Data[4] SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l.a[1] UART_TX_data[7] UART_TX/FIFO/al_ram_mem_c1_l.d[1]
Timing path: u_logic/_al_u3978|u_logic/Wvgax6_reg.clk->SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l Timing path: u_logic/_al_u3982|u_logic/Wvgax6_reg.clk->UART_TX/FIFO/al_ram_mem_c1_l
u_logic/_al_u3978|u_logic/Wvgax6_reg.clk u_logic/_al_u3982|u_logic/Wvgax6_reg.clk
SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l UART_TX/FIFO/al_ram_mem_c1_l
745 3.696000 0.134000 3.830000 3 3 727 3.031000 0.134000 3.165000 3 3
u_logic/Wvgax6 u_logic/_al_u3342|u_logic/Kqhbx6_reg.d[0] u_logic/Wvgax6 u_logic/_al_u4365|u_logic/Yqzax6_reg.c[0]
HWDATA[4] _al_u128|_al_u130.c[1] HWDATA[7] _al_u121|UART_RX/counter_en_reg.c[1]
SPI_TX_Data[4] SPI_TX/FIFO_SPI/al_ram_mem_r1_c1_l.a[1] UART_TX_data[7] UART_TX/FIFO/al_ram_mem_c1_l.d[1]
Endpoint: FM_HW/FM_Demodulation/mult7_ Endpoint: RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006
776 0.308000 10 3 758 0.293000 12 3
Timing path: FM_HW/FM_RSSI_SCAN/add2/ucin_al_u4000.clk->FM_HW/FM_Demodulation/mult7_ Timing path: RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.clk->RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006
FM_HW/FM_RSSI_SCAN/add2/ucin_al_u4000.clk RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.clk
FM_HW/FM_Demodulation/mult7_ RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006
778 0.308000 0.100000 0.408000 0 1 760 0.293000 0.200000 0.493000 0 1
FM_HW/FM_Demodulation/dmd_data_filter[16][3] FM_HW/FM_Demodulation/mult7_.a[3] RAMDATA_WADDR[6] RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006.addra[7]
Timing path: FM_HW/FM_Demodulation/reg5_b160|FM_HW/FM_Demodulation/reg5_b162.clk->FM_HW/FM_Demodulation/mult7_ Timing path: u_logic/_al_u2784|RAMDATA_Interface/reg0_b8.clk->RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006
FM_HW/FM_Demodulation/reg5_b160|FM_HW/FM_Demodulation/reg5_b162.clk u_logic/_al_u2784|RAMDATA_Interface/reg0_b8.clk
FM_HW/FM_Demodulation/mult7_ RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006
805 0.320000 0.100000 0.420000 0 1 787 0.351000 0.200000 0.551000 0 1
FM_HW/FM_Demodulation/dmd_data_filter[16][2] FM_HW/FM_Demodulation/mult7_.a[2] RAMDATA_WADDR[8] RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006.addra[9]
Timing path: FM_HW/FM_Demodulation/sub0_2/u0|sub0_2/ucin.clk->FM_HW/FM_Demodulation/mult7_ Timing path: RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.clk->RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006
FM_HW/FM_Demodulation/sub0_2/u0|sub0_2/ucin.clk RAMDATA_Interface/reg0_b6|RAMDATA_Interface/reg0_b4.clk
FM_HW/FM_Demodulation/mult7_ RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006
832 0.466000 0.100000 0.566000 0 1 814 0.414000 0.200000 0.614000 0 1
FM_HW/FM_Demodulation/dmd_data_filter[16][8] FM_HW/FM_Demodulation/mult7_.a[8] RAMDATA_WADDR[4] RAM_DATA/ram_mem_unify_al_u30_4096x8_sub_000000_006.addra[5]
Endpoint: RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006 Endpoint: UART_TX/FIFO/al_ram_mem_c1_l
859 0.313000 12 3 841 0.295000 94 3
Timing path: RAMCODE_Interface/reg0_b9|RAMCODE_Interface/reg0_b8.clk->RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006 Timing path: UART_TX/FIFO/reg1_b0|UART_TX/FIFO/reg1_b2.clk->UART_TX/FIFO/al_ram_mem_c1_l
RAMCODE_Interface/reg0_b9|RAMCODE_Interface/reg0_b8.clk UART_TX/FIFO/reg1_b0|UART_TX/FIFO/reg1_b2.clk
RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006 UART_TX/FIFO/al_ram_mem_c1_l
861 0.313000 0.200000 0.513000 0 1 843 0.295000 0.134000 0.429000 1 1
RAMCODE_WADDR[8] RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006.addra[9] UART_TX/FIFO/wp[2] UART_TX/FIFO/al_ram_mem_c1_l.c[0]
Timing path: RAMCODE_Interface/reg0_b9|RAMCODE_Interface/reg0_b8.clk->RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006 Timing path: _al_u240|UART_Interface/wr_en_reg_reg.clk->UART_TX/FIFO/al_ram_mem_c1_l
RAMCODE_Interface/reg0_b9|RAMCODE_Interface/reg0_b8.clk _al_u240|UART_Interface/wr_en_reg_reg.clk
RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006 UART_TX/FIFO/al_ram_mem_c1_l
888 0.579000 0.200000 0.779000 0 1 870 1.299000 0.134000 1.433000 2 2
RAMCODE_WADDR[9] RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006.addra[10] UART_Interface/wr_en_reg _al_u123|UART_RX/reg2_b5.d[1]
UART_TX_data[6] UART_TX/FIFO/al_ram_mem_c1_l.c[1]
Timing path: RAMCODE_Interface/reg0_b11|RAMCODE_Interface/reg0_b10.clk->RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006 Timing path: u_logic/_al_u3982|u_logic/Wvgax6_reg.clk->UART_TX/FIFO/al_ram_mem_c1_l
RAMCODE_Interface/reg0_b11|RAMCODE_Interface/reg0_b10.clk u_logic/_al_u3982|u_logic/Wvgax6_reg.clk
RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006 UART_TX/FIFO/al_ram_mem_c1_l
915 0.582000 0.200000 0.782000 0 1 899 2.761000 0.134000 2.895000 3 3
RAMCODE_WADDR[10] RAM_CODE/ram_mem_unify_al_u10_4096x8_sub_000000_006.addra[11] u_logic/Wvgax6 u_logic/_al_u3441|u_logic/Z9abx6_reg.d[0]
HWDATA[6] _al_u123|UART_RX/reg2_b5.c[1]
UART_TX_data[6] UART_TX/FIFO/al_ram_mem_c1_l.c[1]
Recovery check Recovery check
942 3 930 3
Endpoint: cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b55|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b68 Endpoint: u_logic/_al_u3646|u_logic/X5ibx6_reg
944 7.068000 1 1 932 16.782000 1 1
Timing path: _al_u570|cw_top/wrapper_cwc_top/cfg_int_inst/tap_inst/rst_reg.clk->cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b55|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b68 Timing path: u_logic/_al_u1562|cpuresetn_reg.clk->u_logic/_al_u3646|u_logic/X5ibx6_reg
_al_u570|cw_top/wrapper_cwc_top/cfg_int_inst/tap_inst/rst_reg.clk u_logic/_al_u1562|cpuresetn_reg.clk
cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b55|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b68 u_logic/_al_u3646|u_logic/X5ibx6_reg
946 7.068000 9.700000 2.632000 0 1 934 16.782000 19.700000 2.918000 0 1
cw_top/wrapper_cwc_top/cfg_int_inst/rst cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b55|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b68.sr cpuresetn u_logic/_al_u3646|u_logic/X5ibx6_reg.sr
Endpoint: cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b63|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b64 Endpoint: u_logic/_al_u2354|u_logic/O4hax6_reg
973 7.068000 1 1 961 16.894000 1 1
Timing path: _al_u570|cw_top/wrapper_cwc_top/cfg_int_inst/tap_inst/rst_reg.clk->cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b63|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b64 Timing path: u_logic/_al_u1562|cpuresetn_reg.clk->u_logic/_al_u2354|u_logic/O4hax6_reg
_al_u570|cw_top/wrapper_cwc_top/cfg_int_inst/tap_inst/rst_reg.clk u_logic/_al_u1562|cpuresetn_reg.clk
cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b63|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b64 u_logic/_al_u2354|u_logic/O4hax6_reg
975 7.068000 9.700000 2.632000 0 1 963 16.894000 19.700000 2.806000 0 1
cw_top/wrapper_cwc_top/cfg_int_inst/rst cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b63|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b64.sr cpuresetn u_logic/_al_u2354|u_logic/O4hax6_reg.sr
Endpoint: cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b140|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b141 Endpoint: u_logic/_al_u4735|u_logic/Knhax6_reg
1002 7.197000 1 1 990 16.894000 1 1
Timing path: _al_u570|cw_top/wrapper_cwc_top/cfg_int_inst/tap_inst/rst_reg.clk->cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b140|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b141 Timing path: u_logic/_al_u1562|cpuresetn_reg.clk->u_logic/_al_u4735|u_logic/Knhax6_reg
_al_u570|cw_top/wrapper_cwc_top/cfg_int_inst/tap_inst/rst_reg.clk u_logic/_al_u1562|cpuresetn_reg.clk
cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b140|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b141 u_logic/_al_u4735|u_logic/Knhax6_reg
1004 7.197000 9.700000 2.503000 0 1 992 16.894000 19.700000 2.806000 0 1
cw_top/wrapper_cwc_top/cfg_int_inst/rst cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b140|cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg2_b141.sr cpuresetn u_logic/_al_u4735|u_logic/Knhax6_reg.sr
Removal check Removal check
1031 3 1019 3
Endpoint: u_logic/_al_u2894|u_logic/Wfspw6_reg Endpoint: u_logic/I5xax6_reg|u_logic/R9yax6_reg
1033 0.438000 1 1 1021 0.281000 1 1
Timing path: u_logic/_al_u2275|cpuresetn_reg.clk->u_logic/_al_u2894|u_logic/Wfspw6_reg Timing path: u_logic/_al_u1562|cpuresetn_reg.clk->u_logic/I5xax6_reg|u_logic/R9yax6_reg
u_logic/_al_u2275|cpuresetn_reg.clk u_logic/_al_u1562|cpuresetn_reg.clk
u_logic/_al_u2894|u_logic/Wfspw6_reg u_logic/I5xax6_reg|u_logic/R9yax6_reg
1035 0.438000 0.300000 0.738000 0 1 1023 0.281000 0.300000 0.581000 0 1
cpuresetn u_logic/_al_u2894|u_logic/Wfspw6_reg.sr cpuresetn u_logic/I5xax6_reg|u_logic/R9yax6_reg.sr
Endpoint: u_logic/_al_u3144|u_logic/Kojpw6_reg Endpoint: u_logic/_al_u2275|u_logic/Yzspw6_reg
1062 0.465000 1 1 1050 0.314000 1 1
Timing path: u_logic/_al_u2275|cpuresetn_reg.clk->u_logic/_al_u3144|u_logic/Kojpw6_reg Timing path: u_logic/_al_u1562|cpuresetn_reg.clk->u_logic/_al_u2275|u_logic/Yzspw6_reg
u_logic/_al_u2275|cpuresetn_reg.clk u_logic/_al_u1562|cpuresetn_reg.clk
u_logic/_al_u3144|u_logic/Kojpw6_reg u_logic/_al_u2275|u_logic/Yzspw6_reg
1064 0.465000 0.300000 0.765000 0 1 1052 0.314000 0.300000 0.614000 0 1
cpuresetn u_logic/_al_u3144|u_logic/Kojpw6_reg.sr cpuresetn u_logic/_al_u2275|u_logic/Yzspw6_reg.sr
Endpoint: cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_inst/reg1_b5|cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_inst/reg1_b6 Endpoint: u_logic/_al_u3169|u_logic/C1wpw6_reg
1091 0.475000 1 1 1079 0.461000 1 1
Timing path: cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg1_b0.clk->cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_inst/reg1_b5|cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_inst/reg1_b6 Timing path: u_logic/_al_u1562|cpuresetn_reg.clk->u_logic/_al_u3169|u_logic/C1wpw6_reg
cw_top/wrapper_cwc_top/cfg_int_inst/reg_inst/reg1_b0.clk u_logic/_al_u1562|cpuresetn_reg.clk
cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_inst/reg1_b5|cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_inst/reg1_b6 u_logic/_al_u3169|u_logic/C1wpw6_reg
1093 0.475000 0.300000 0.775000 0 1 1081 0.461000 0.300000 0.761000 0 1
cw_top/wrapper_cwc_top/control[0] cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_inst/reg1_b5|cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_inst/reg1_b6.sr cpuresetn u_logic/_al_u3169|u_logic/C1wpw6_reg.sr
@ -410,11 +404,11 @@ cw_top/wrapper_cwc_top/control[0] cw_top/wrapper_cwc_top/trigger_inst/emb_ctrl_i
Timing group statistics: Timing group statistics:
Clock constraints: Clock constraints:
Clock Name Min Period Max Freq Skew Fanout TNS Clock Name Min Period Max Freq Skew Fanout TNS
DeriveClock (50.0MHz) 33.826ns 29MHz 0.000ns 2795 -2264.715ns DeriveClock (50.0MHz) 30.123ns 33MHz 0.000ns 2544 -630.003ns
Minimum input arrival time before clock: no constraint path Minimum input arrival time before clock: no constraint path
Maximum output required time after clock: no constraint path Maximum output required time after clock: no constraint path
Maximum combinational path delay: no constraint path Maximum combinational path delay: no constraint path
Warning: No clock constraint on 14 clock net(s): Warning: No clock constraint on 13 clock net(s):
CW_CLK_MSI CW_CLK_MSI
FM_Display/clk_1KHz FM_Display/clk_1KHz
FM_HW/ADC_CLK FM_HW/ADC_CLK
@ -426,7 +420,6 @@ Warning: No clock constraint on 14 clock net(s):
FM_HW/clk_fm_demo_sampling FM_HW/clk_fm_demo_sampling
MSI_REFCLK_pad MSI_REFCLK_pad
clk_pad clk_pad
jtck
scan_unit/scan_clk scan_unit/scan_clk
u_logic/SWCLKTCK_pad u_logic/SWCLKTCK_pad

View File

@ -8,17 +8,17 @@ IO Statistics
#inout 1 #inout 1
Utilization Statistics Utilization Statistics
#lut 16581 out of 19600 84.60% #lut 16271 out of 19600 83.02%
#reg 2517 out of 19600 12.84% #reg 2074 out of 19600 10.58%
#le 16834 #le 16397
#lut only 14317 out of 16834 85.05% #lut only 14323 out of 16397 87.35%
#reg only 253 out of 16834 1.50% #reg only 126 out of 16397 0.77%
#lut&reg 2264 out of 16834 13.45% #lut&reg 1948 out of 16397 11.88%
#dsp 26 out of 29 89.66% #dsp 26 out of 29 89.66%
#bram 32 out of 64 50.00% #bram 32 out of 64 50.00%
#bram9k 32 #bram9k 32
#fifo9k 0 #fifo9k 0
#bram32k 6 out of 16 37.50% #bram32k 0 out of 16 0.00%
#adc 1 out of 1 100.00% #adc 1 out of 1 100.00%
#pad 39 out of 186 20.97% #pad 39 out of 186 20.97%
#ireg 0 #ireg 0
@ -74,5 +74,5 @@ Report Hierarchy Area:
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
|Instance |Module |le |lut |ripple |seq |bram |dsp | |Instance |Module |le |lut |ripple |seq |bram |dsp |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
|top |CortexM0_SoC |16834 |16108 |473 |2517 |38 |26 | |top |CortexM0_SoC |16397 |15898 |373 |2074 |32 |26 |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+

View File

@ -1,13 +1,12 @@
module CW_TOP_WRAPPER(jtdi, jtck, jrstn, jscan, jshift, jupdate, jtdo, non_bus_din, bus_din, trig_clk, wt_ce, wt_en, wt_addr); module CW_TOP_WRAPPER(jtdi, jtck, jrstn, jscan, jshift, jupdate, jtdo, non_bus_din, bus_din, trig_clk, wt_ce, wt_en, wt_addr);
localparam DEFAULT_CTRL_REG_LEN = 223; localparam DEFAULT_CTRL_REG_LEN = 156;
localparam DEFAULT_STAT_REG_LEN = 18; localparam DEFAULT_STAT_REG_LEN = 18;
localparam DEFAULT_STOP_LEN = 2730; localparam DEFAULT_STOP_LEN = 5461;
localparam DEFAULT_NON_BUS_NODE_NUM = 0; localparam DEFAULT_NON_BUS_NODE_NUM = 0;
localparam DEFAULT_BUS_NODE_NUM = 48; localparam DEFAULT_BUS_NODE_NUM = 17;
localparam DEFAULT_BUS_NUM = 3; localparam DEFAULT_BUS_NUM = 2;
localparam DEFAULT_BUS1_WIDTH = 16; localparam DEFAULT_BUS1_WIDTH = 14;
localparam DEFAULT_BUS2_WIDTH = 16; localparam DEFAULT_BUS2_WIDTH = 3;
localparam DEFAULT_BUS3_WIDTH = 16;
input jtdi; input jtdi;
input jtck; input jtck;
input jrstn; input jrstn;
@ -22,7 +21,7 @@ module CW_TOP_WRAPPER(jtdi, jtck, jrstn, jscan, jshift, jupdate, jtdo, non_bus_d
output wt_en; output wt_en;
output [15:0] wt_addr; output [15:0] wt_addr;
cwc_top #(.BUS1_WIDTH(DEFAULT_BUS1_WIDTH), .BUS2_WIDTH(DEFAULT_BUS2_WIDTH), .BUS3_WIDTH(DEFAULT_BUS3_WIDTH), .CTRL_REG_LEN(DEFAULT_CTRL_REG_LEN), .STAT_REG_LEN(DEFAULT_STAT_REG_LEN), .STOP_LEN(DEFAULT_STOP_LEN), .NON_BUS_NODE_NUM(DEFAULT_NON_BUS_NODE_NUM), .BUS_NODE_NUM(DEFAULT_BUS_NODE_NUM), .BUS_NUM(DEFAULT_BUS_NUM)) cwc_top #(.BUS1_WIDTH(DEFAULT_BUS1_WIDTH), .BUS2_WIDTH(DEFAULT_BUS2_WIDTH), .CTRL_REG_LEN(DEFAULT_CTRL_REG_LEN), .STAT_REG_LEN(DEFAULT_STAT_REG_LEN), .STOP_LEN(DEFAULT_STOP_LEN), .NON_BUS_NODE_NUM(DEFAULT_NON_BUS_NODE_NUM), .BUS_NODE_NUM(DEFAULT_BUS_NODE_NUM), .BUS_NUM(DEFAULT_BUS_NUM))
wrapper_cwc_top( wrapper_cwc_top(
.jtdi(jtdi), .jtdi(jtdi),
.jtck(jtck), .jtck(jtck),

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

172
project/debug_rssi.cwc Normal file
View File

@ -0,0 +1,172 @@
<chipwatcher project_name="MMC" bit_file="MMC.bit" bid_file="MMC_inst.bid" chip_name="EG4S20BG256">
<instance name="auto_chipwatcher_0" id="0" enabled="yes">
<clock clk_name="clk" polarity="posedge"/>
<config bram_name="auto_chipwatcher_0_logicbram" sample_depth="8192"/>
<signal_vec>
<trigger_nets>
<net name="FM_HW_state[1]"/>
<net name="FM_HW_state[2]"/>
<net name="FM_HW_state[3]"/>
<net name="SPI_TX/counter[0]"/>
<net name="SPI_TX/counter[10]"/>
<net name="SPI_TX/counter[11]"/>
<net name="SPI_TX/counter[12]"/>
<net name="SPI_TX/counter[13]"/>
<net name="SPI_TX/counter[1]"/>
<net name="SPI_TX/counter[2]"/>
<net name="SPI_TX/counter[3]"/>
<net name="SPI_TX/counter[4]"/>
<net name="SPI_TX/counter[5]"/>
<net name="SPI_TX/counter[6]"/>
<net name="SPI_TX/counter[7]"/>
<net name="SPI_TX/counter[8]"/>
<net name="SPI_TX/counter[9]"/>
</trigger_nets>
<data_nets>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[0]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[10]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[11]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[12]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[13]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[14]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[15]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[16]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[17]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[18]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[19]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[1]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[20]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[21]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[22]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[23]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[24]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[25]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[26]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[2]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[3]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[4]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[5]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[6]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[7]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[8]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[9]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[0]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[10]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[11]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[12]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[1]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[2]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[3]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[4]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[5]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[6]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[7]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[8]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[9]"/>
<net name="FM_HW_state[1]"/>
<net name="FM_HW_state[2]"/>
<net name="FM_HW_state[3]"/>
<net name="HSEL_P4"/>
<net name="HSEL_P5"/>
<net name="MSI_CS"/>
<net name="MSI_REFCLK"/>
<net name="MSI_SCLK"/>
<net name="MSI_SDATA"/>
<net name="SPI_TX/counter[0]"/>
<net name="SPI_TX/counter[10]"/>
<net name="SPI_TX/counter[11]"/>
<net name="SPI_TX/counter[12]"/>
<net name="SPI_TX/counter[13]"/>
<net name="SPI_TX/counter[1]"/>
<net name="SPI_TX/counter[2]"/>
<net name="SPI_TX/counter[3]"/>
<net name="SPI_TX/counter[4]"/>
<net name="SPI_TX/counter[5]"/>
<net name="SPI_TX/counter[6]"/>
<net name="SPI_TX/counter[7]"/>
<net name="SPI_TX/counter[8]"/>
<net name="SPI_TX/counter[9]"/>
</data_nets>
<watcher_nodes>
<net name="MSI_CS" op="equal"/>
<net name="MSI_REFCLK" op="equal"/>
<net name="MSI_SCLK" op="equal"/>
<net name="MSI_SDATA" op="equal"/>
<net name="HSEL_P4" op="equal"/>
<net name="HSEL_P5" op="equal"/>
<bus name="FM_HW_state" radix="bin" state="collapse" op="equal">
<net name="FM_HW_state[3]"/>
<net name="FM_HW_state[2]"/>
<net name="FM_HW_state[1]"/>
</bus>
<bus name="SPI_TX/counter" radix="hex" state="collapse" op="equal">
<net name="SPI_TX/counter[13]"/>
<net name="SPI_TX/counter[12]"/>
<net name="SPI_TX/counter[11]"/>
<net name="SPI_TX/counter[10]"/>
<net name="SPI_TX/counter[9]"/>
<net name="SPI_TX/counter[8]"/>
<net name="SPI_TX/counter[7]"/>
<net name="SPI_TX/counter[6]"/>
<net name="SPI_TX/counter[5]"/>
<net name="SPI_TX/counter[4]"/>
<net name="SPI_TX/counter[3]"/>
<net name="SPI_TX/counter[2]"/>
<net name="SPI_TX/counter[1]"/>
<net name="SPI_TX/counter[0]"/>
</bus>
<bus name="FM_HW/FM_RSSI_SCAN/RSSI_SUM" radix="bin" state="collapse" op="dont_care">
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[26]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[25]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[24]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[23]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[22]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[21]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[20]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[19]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[18]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[17]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[16]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[15]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[14]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[13]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[12]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[11]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[10]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[9]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[8]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[7]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[6]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[5]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[4]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[3]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[2]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[1]"/>
<net name="FM_HW/FM_RSSI_SCAN/RSSI_SUM[0]"/>
</bus>
<bus name="FM_HW/FM_RSSI_SCAN/counter" radix="bin" state="collapse" op="dont_care">
<net name="FM_HW/FM_RSSI_SCAN/counter[12]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[11]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[10]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[9]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[8]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[7]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[6]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[5]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[4]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[3]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[2]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[1]"/>
<net name="FM_HW/FM_RSSI_SCAN/counter[0]"/>
</bus>
</watcher_nodes>
</signal_vec>
<trigger name="auto_chipwatcher_0_trigger" position="pre">
<condition level="1" enabled="yes" type="basic_or">
FM_HW_state[1] == low && FM_HW_state[2] == high && FM_HW_state[3] == low && SPI_TX/counter[0] == high && SPI_TX/counter[10] == low && SPI_TX/counter[11] == low && SPI_TX/counter[12] == low && SPI_TX/counter[13] == low && SPI_TX/counter[1] == low && SPI_TX/counter[2] == low && SPI_TX/counter[3] == low && SPI_TX/counter[4] == low && SPI_TX/counter[5] == low && SPI_TX/counter[6] == low && SPI_TX/counter[7] == low && SPI_TX/counter[8] == low && SPI_TX/counter[9] == low
</condition>
<log>
</log>
</trigger>
</instance>
</chipwatcher>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -34,31 +34,6 @@ parameter fir_18 = 8'h39;
parameter fir_19 = 8'h22; parameter fir_19 = 8'h22;
parameter fir_20 = 8'h11; parameter fir_20 = 8'h11;
/*
parameter fir_1 = 8'h15;
parameter fir_2 = 8'h27;
parameter fir_3 = 8'h17;
parameter fir_7 = 8'h17;
parameter fir_8 = 8'h94;
parameter fir_9 = 9'h107;
parameter fir_10 = 9'h136;
parameter fir_11 = 9'h107;
parameter fir_12= 8'h93;
parameter fir_13 = 8'h17;
parameter fir_17 = 8'h17;
parameter fir_18 = 8'h27;
parameter fir_19 = 8'h15;
parameter fir_0 = 8'h09; // negtive
parameter fir_4 = 8'h16; //negtive
parameter fir_5 = 8'h3e; //negtive
parameter fir_6 = 8'h36; //negtive
parameter fir_14 = 8'h36; //negtive
parameter fir_15 = 8'h3e; //negtive
parameter fir_16 = 8'h16; //negtive
parameter fir_20 = 8'h9; //negtive
*/
reg [7:0] IdataN_1=8'h0; reg [7:0] IdataN_1=8'h0;
reg [7:0] IdataN=8'h0; reg [7:0] IdataN=8'h0;
reg [7:0] QdataN_1=8'h0; reg [7:0] QdataN_1=8'h0;

View File

@ -1,236 +1,236 @@
`include "../topmodule/header.vh" `include "../topmodule/header.vh"
module FM_HW #( module FM_HW #(
parameter FM_ADDR_WIDTH = 13 parameter FM_ADDR_WIDTH = 13
)( )(
input clk, input clk,
input ADC_start, input ADC_start,
input RSTn, input RSTn,
output [7:0] LED_Out, output [7:0] LED_Out,
input [FM_ADDR_WIDTH-1:0] wraddr, input [FM_ADDR_WIDTH-1:0] wraddr,
input [FM_ADDR_WIDTH-1:0] rdaddr, input [FM_ADDR_WIDTH-1:0] rdaddr,
input [31:0] wdata, input [31:0] wdata,
input [3:0] wea, input [3:0] wea,
output wire [31:0] rdata, output wire [31:0] rdata,
output reg [3:0] FM_HW_state, output reg [3:0] FM_HW_state,
output wire RSSI_interrupt, output wire RSSI_interrupt,
output wire IQ_Write_Done_interrupt, output wire IQ_Write_Done_interrupt,
output wire Demo_Dump_Done_Interrupt, output wire Demo_Dump_Done_Interrupt,
output wire audio_pwm output wire audio_pwm
); );
reg adc_Power_down=1'b1; //1: power down, 0?power on reg adc_Power_down=1'b1; //1: power down, 0?power on
wire EOC; wire EOC;
wire [31:0] rd_DUMP; wire [31:0] rd_DUMP;
wire [31:0] rd_SCAN; wire [31:0] rd_SCAN;
reg [4:0] ADC_dump_parameters; reg [4:0] ADC_dump_parameters;
/* /*
parameter dumpIQ_or_audio: 1'b1: dump IQ data; 1'b0:dump audio data parameter dumpIQ_or_audio: 1'b1: dump IQ data; 1'b0:dump audio data
if you want dump IQ data, set the dumpIQ_or_audio = 1'b1 if you want dump IQ data, set the dumpIQ_or_audio = 1'b1
then make instance of FM_Dump_Data as FM_Dump_Data_IQ then make instance of FM_Dump_Data as FM_Dump_Data_IQ
if you want dump audio data, set the dumpIQ_or_audio = 1'b0 if you want dump audio data, set the dumpIQ_or_audio = 1'b0
you need make instance of:FM_Dump_Data FM_Dump_Data_Audio you need make instance of:FM_Dump_Data FM_Dump_Data_Audio
*/ */
localparam dumpIQ_or_audio = 1'b1; localparam dumpIQ_or_audio = 1'b1;
localparam FM_HW_STATE_IDLE = 4'b0000; localparam FM_HW_STATE_IDLE = 4'b0000;
localparam FM_HW_STATE_RCEV = 4'b0010; //Receiver State, receiver, dump IQ or audio data localparam FM_HW_STATE_RCEV = 4'b0010; //Receiver State, receiver, dump IQ or audio data
localparam FM_HW_STATE_RSSI = 4'b0100; //RSSI Scan state localparam FM_HW_STATE_RSSI = 4'b0100; //RSSI Scan state
localparam FM_HW_STATE_RSSI_DONE = 4'b1000; //Sent from core, marking the end of single RSSI scan localparam FM_HW_STATE_RSSI_DONE = 4'b1000; //Sent from core, marking the end of single RSSI scan
reg RSSI_Scan_Start; reg RSSI_Scan_Start;
always@(posedge clk or negedge RSTn ) begin always@(posedge clk or negedge RSTn ) begin
if (!RSTn) begin if (!RSTn) begin
FM_HW_state <= FM_HW_STATE_IDLE; FM_HW_state <= FM_HW_STATE_IDLE;
adc_Power_down <=1'b1; adc_Power_down <=1'b1;
end end
else if ((wraddr==15'h004)&&(wdata[7:4]==4'b0001)&&(wea==4'hf)) begin //control to normal FM receiver On else if ((wraddr==15'h004)&&(wdata[7:4]==4'b0001)&&(wea==4'hf)) begin //control to normal FM receiver On
FM_HW_state <= FM_HW_STATE_RCEV; FM_HW_state <= FM_HW_STATE_RCEV;
adc_Power_down <=1'b0; adc_Power_down <=1'b0;
end end
else if ((wraddr==15'h004)&&(wdata[7:4]==4'b0010)&&(wea==4'hf)) begin //control to normal FM receiver OFF else if ((wraddr==15'h004)&&(wdata[7:4]==4'b0010)&&(wea==4'hf)) begin //control to normal FM receiver OFF
FM_HW_state <= FM_HW_STATE_IDLE; FM_HW_state <= FM_HW_STATE_IDLE;
adc_Power_down <=1'b1; adc_Power_down <=1'b1;
end end
else if ((wraddr==15'h004)&&(wdata[15:8]==8'h01)&&(wea==4'hf)) begin //RSSI scan start parameters else if ((wraddr==15'h004)&&(wdata[15:8]==8'h01)&&(wea==4'hf)) begin //RSSI scan start parameters
FM_HW_state <= FM_HW_STATE_RSSI; FM_HW_state <= FM_HW_STATE_RSSI;
adc_Power_down <=1'b0; adc_Power_down <=1'b0;
end end
else if ((wraddr==13'h004)&&(wdata[15:8]==8'h02)&&(wea==4'hf)) begin //RSSI scan done parameters else if ((wraddr==13'h004)&&(wdata[15:8]==8'h02)&&(wea==4'hf)) begin //RSSI scan done parameters
FM_HW_state <= FM_HW_STATE_RSSI_DONE; FM_HW_state <= FM_HW_STATE_RSSI_DONE;
adc_Power_down <=1'b0; adc_Power_down <=1'b0;
end end
end end
wire CW_CLK; //synthesis keep; wire CW_CLK; //synthesis keep;
wire ADC_CLK; wire ADC_CLK;
wire CLK_Lock; wire CLK_Lock;
wire clk_PWM1; wire clk_PWM1;
wire clk_PWM2; wire clk_PWM2;
`ifndef SIM_PROFILE `ifndef SIM_PROFILE
PLL_Demodulation U1 //use final adc clk 200Khz PLL_Demodulation U1 //use final adc clk 200Khz
( (
.refclk(clk), .refclk(clk),
.reset(1'b0), .reset(1'b0),
.stdby(1'b0), .stdby(1'b0),
.extlock(CLK_Lock), .extlock(CLK_Lock),
.clk0_out(CW_CLK), //ChipWatcher采样时钟 200M .clk0_out(CW_CLK), //ChipWatcher采样时钟 200M
.clk1_out(ADC_CLK), //ADC工作时钟,6.4M .clk1_out(ADC_CLK), //ADC工作时钟,6.4M
.clk2_out(clk_PWM1), //20M .clk2_out(clk_PWM1), //20M
.clk4_out(clk_PWM2) //40M .clk4_out(clk_PWM2) //40M
); );
`endif `endif
//ADC通道4,6轮询 //ADC通道4,6轮询
reg[2:0] Channel; reg[2:0] Channel;
always@(posedge EOC or negedge RSTn ) begin always@(posedge EOC or negedge RSTn ) begin
if (!RSTn) Channel <= 3'b100; if (!RSTn) Channel <= 3'b100;
else if (Channel == 3'b100) else if (Channel == 3'b100)
Channel <= 3'b110; Channel <= 3'b110;
else else
Channel <= 3'b100; Channel <= 3'b100;
end end
//ADC输出数据 //ADC输出数据
wire [11:0]ADC_Data ; //synthesis keep; wire [11:0]ADC_Data ; //synthesis keep;
//CH6-P12 MSI I data, CH4-M12 MSI Q data //CH6-P12 MSI I data, CH4-M12 MSI Q data
`ifndef SIM_PROFILE `ifndef SIM_PROFILE
ADC_Sampling U2 ADC_Sampling U2
( (
.eoc(EOC), .eoc(EOC),
.dout(ADC_Data), .dout(ADC_Data),
.clk(ADC_CLK), .clk(ADC_CLK),
.pd(adc_Power_down), .pd(adc_Power_down),
.s(Channel), .s(Channel),
.soc(1'b1) .soc(1'b1)
); );
`else `else
ADC_Sample_debug ADC_Sample_debug( ADC_Sample_debug ADC_Sample_debug(
.eoc(EOC), .eoc(EOC),
.dout(ADC_Data), .dout(ADC_Data),
.clk(clk), .clk(clk),
.RSTn(RSTn), .RSTn(RSTn),
.channel(Channel) .channel(Channel)
); );
reg [2:0] sim_PWM_clk; reg [2:0] sim_PWM_clk;
reg sim_clk_PWM1; reg sim_clk_PWM1;
always@(posedge clk or negedge RSTn ) begin always@(posedge clk or negedge RSTn ) begin
if (!RSTn) begin sim_clk_PWM1 <= 1'b0; sim_PWM_clk <=3'b000; end if (!RSTn) begin sim_clk_PWM1 <= 1'b0; sim_PWM_clk <=3'b000; end
else if (sim_PWM_clk == 3'b101) begin else if (sim_PWM_clk == 3'b101) begin
sim_clk_PWM1 <= 1'b1; sim_clk_PWM1 <= 1'b1;
sim_PWM_clk <=3'b000; sim_PWM_clk <=3'b000;
end end
else begin else begin
sim_clk_PWM1 <= 1'b0; sim_clk_PWM1 <= 1'b0;
sim_PWM_clk = sim_PWM_clk+1'b1; sim_PWM_clk = sim_PWM_clk+1'b1;
end end
end end
`endif `endif
wire [9:0] demodulated_signal_downsample; wire [9:0] demodulated_signal_downsample;
FM_Demodulation FM_Demodulation FM_Demodulation FM_Demodulation
( (
.EOC(EOC), .EOC(EOC),
.Channel(Channel), .Channel(Channel),
.FM_HW_state(FM_HW_state), .FM_HW_state(FM_HW_state),
.RSTn(RSTn), .RSTn(RSTn),
.ADC_Data(ADC_Data), .ADC_Data(ADC_Data),
.demod_en(adc_Power_down), .demod_en(adc_Power_down),
.demodulated_signal_sample(demodulated_signal_downsample), .demodulated_signal_sample(demodulated_signal_downsample),
.clk_fm_demo_sampling(clk_fm_demo_sampling) .clk_fm_demo_sampling(clk_fm_demo_sampling)
); );
FM_RSSI_SCAN FM_RSSI_SCAN FM_RSSI_SCAN FM_RSSI_SCAN
( (
.clk(clk), .clk(clk),
.rdaddr(wraddr), .rdaddr(wraddr),
.rdata(rd_SCAN), .rdata(rd_SCAN),
.EOC(EOC), .EOC(EOC),
.Channel(Channel), .Channel(Channel),
.FM_HW_state(FM_HW_state), .FM_HW_state(FM_HW_state),
.RSTn(RSTn), .RSTn(RSTn),
.ADC_Data(ADC_Data), .ADC_Data(ADC_Data),
.RSSI_interrupt(RSSI_interrupt) .RSSI_interrupt(RSSI_interrupt)
); );
// select FM_Dump_Data_IQ or FM_Dump_Data_Audio // select FM_Dump_Data_IQ or FM_Dump_Data_Audio
FM_Dump_Data FM_Dump_Data_IQ FM_Dump_Data FM_Dump_Data_IQ
( (
.clk(clk), .clk(clk),
.RSTn(RSTn), .RSTn(RSTn),
.dump_data_clk(EOC), .dump_data_clk(EOC),
.FM_HW_state(FM_HW_state), .FM_HW_state(FM_HW_state),
.wraddr(wraddr), .wraddr(wraddr),
.rdaddr(rdaddr), .rdaddr(rdaddr),
.wdata(wdata), .wdata(wdata),
.wea(wea), .wea(wea),
.dump_data(ADC_Data[11:4]), .dump_data(ADC_Data[11:4]),
.rdata(rd_DUMP), .rdata(rd_DUMP),
.Dump_Done_Interrupt(Dump_Done_Interrupt) .Dump_Done_Interrupt(Dump_Done_Interrupt)
); );
/* /*
FM_Dump_Data FM_Dump_Data_Audio FM_Dump_Data FM_Dump_Data_Audio
( (
.clk(clk), .clk(clk),
.RSTn(RSTn), .RSTn(RSTn),
.dump_data_clk(clk_fm_demo_sampling), .dump_data_clk(clk_fm_demo_sampling),
.FM_HW_state(FM_HW_state), .FM_HW_state(FM_HW_state),
.wraddr(wraddr), .wraddr(wraddr),
.rdaddr(wraddr), .rdaddr(wraddr),
.wdata(wdata), .wdata(wdata),
.wea(wea), .wea(wea),
.dump_data(demodulated_signal_downsample[8:1]), .dump_data(demodulated_signal_downsample[8:1]),
.rdata(rdata), .rdata(rdata),
.Dump_Done_Interrupt(Dump_Done_Interrupt) .Dump_Done_Interrupt(Dump_Done_Interrupt)
); );
*/ */
Aduio_PWM Audio_PWM Aduio_PWM Audio_PWM
( (
.clk_fm_demo_sampling(clk_fm_demo_sampling), .clk_fm_demo_sampling(clk_fm_demo_sampling),
`ifndef SIM_PROFILE `ifndef SIM_PROFILE
.clk(clk_PWM1), //simulating 20K or 40K * 200KHz ADC sampling clk .clk(clk_PWM1), //simulating 20K or 40K * 200KHz ADC sampling clk
`else `else
.clk(sim_clk_PWM1), // for Model Simulation ONLY .clk(sim_clk_PWM1), // for Model Simulation ONLY
`endif `endif
.RSTn(RSTn), .RSTn(RSTn),
.demod_en(adc_Power_down), .demod_en(adc_Power_down),
.demodulated_signal_downsample(demodulated_signal_downsample), .demodulated_signal_downsample(demodulated_signal_downsample),
.audio_pwm(audio_pwm) .audio_pwm(audio_pwm)
); );
assign LED_Out = {audio_pwm,audio_pwm,audio_pwm,audio_pwm,~audio_pwm,~audio_pwm,~audio_pwm,~audio_pwm}; assign LED_Out = {audio_pwm,audio_pwm,audio_pwm,audio_pwm,~audio_pwm,~audio_pwm,~audio_pwm,~audio_pwm};
assign IQ_Write_Done_interrupt = dumpIQ_or_audio? Dump_Done_Interrupt:1'b0; assign IQ_Write_Done_interrupt = dumpIQ_or_audio? Dump_Done_Interrupt:1'b0;
assign Demo_Dump_Done_Interrupt = (~dumpIQ_or_audio)? Dump_Done_Interrupt:1'b0; assign Demo_Dump_Done_Interrupt = (~dumpIQ_or_audio)? Dump_Done_Interrupt:1'b0;
assign rdata = (FM_HW_state == FM_HW_STATE_RSSI) ? rd_SCAN:rd_DUMP; assign rdata = (FM_HW_state == FM_HW_STATE_RSSI) ? rd_SCAN:rd_DUMP;
endmodule endmodule

View File

@ -1,24 +1,24 @@
module clk_fm_demo_sample_pwm module clk_fm_demo_sample_pwm
#( parameter BPS_PARA = 10 ) //200Khz/BPS_PARA = audio samping rate. BPS_PARA=10: 20kHz #( parameter BPS_PARA = 10 ) //400Khz/BPS_PARA = audio samping rate. BPS_PARA=20: 20kHz
( (
input FM_demod_en, input FM_demod_en,
input EOC, input EOC,
input RSTn, input RSTn,
output reg clk_fm_demo_sampling output reg clk_fm_demo_sampling
); );
reg [5:0] cnt = 0; reg [5:0] cnt = 0;
always @ (posedge EOC or negedge RSTn) begin always @ (posedge EOC or negedge RSTn) begin
if(~RSTn) cnt <= 6'b0; if(~RSTn) cnt <= 6'b0;
else if (~FM_demod_en) begin else if (~FM_demod_en) begin
if((cnt >= BPS_PARA-1)||(FM_demod_en)) begin if((cnt >= BPS_PARA-1)||(FM_demod_en)) begin
cnt <= 6'b0; cnt <= 6'b0;
clk_fm_demo_sampling <= 1'b1; clk_fm_demo_sampling <= 1'b1;
end end
else begin cnt <= cnt + 1'b1;clk_fm_demo_sampling <= 1'b0; end else begin cnt <= cnt + 1'b1;clk_fm_demo_sampling <= 1'b0; end
end end
else clk_fm_demo_sampling <= 1'b0; else clk_fm_demo_sampling <= 1'b0;
end end
endmodule endmodule

View File

@ -1,32 +1,32 @@
`timescale 1 ps/ 1 ps `timescale 1 ps/ 1 ps
module CortexM0_SoC_vlg_tst(); module CortexM0_SoC_vlg_tst();
reg clk; reg clk;
reg RSTn; reg RSTn;
reg TXD; reg TXD;
reg MSI_SDATA; reg MSI_SDATA;
reg MSI_CS; reg MSI_CS;
reg MSI_SCLK; reg MSI_SCLK;
CortexM0_SoC i1 ( CortexM0_SoC i1 (
.clk(clk), .clk(clk),
.RSTn(RSTn) .RSTn(RSTn)
); );
initial begin initial begin
clk = 0; clk = 0;
RSTn=0; RSTn=0;
#100 #100
RSTn=1; RSTn=1;
end end
always begin always begin
#10 clk = ~clk; #10 clk = ~clk;
end end
//glbl glbl(); //glbl glbl();
endmodule endmodule

View File

@ -50,6 +50,17 @@ unsigned int REG1=0x0000e201;
unsigned int REG2=0x0001f2bc2; unsigned int REG2=0x0001f2bc2;
unsigned int REG3=0x00000003; unsigned int REG3=0x00000003;
ChannelControlType ChannelControlDisplay; ChannelControlType ChannelControlDisplay;
ChannelControlType Profile[10];
void initialize()
{
int ii;
float frequency[10] = {87.9,89.9,90.9,91.4,93.4,94.0,95.5,103.7,105.7,107.7};
for (ii=1;ii<=10;ii++){
Profile[ii-1].channel_no = ii;
Profile[ii-1].freq = frequency[ii-1];
}
}
void ChannelSelection_control(unsigned int data) void ChannelSelection_control(unsigned int data)
{ {
@ -380,656 +391,54 @@ void ChannelSelection_control(unsigned int data)
else if(data=='1') // formal FM receiver else if(data=='1') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[0].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[0]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
REG2 = 0x210002; //Reg2: INT=33,FRAC=0 99.0MHz in Shanghai
SPI_RFD(REG2);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
REG3 = 0x00000003; //Reg3:AFC = 0
SPI_RFD(REG3);
FM_current_gain=20;
FM_current_INT=33;
FM_current_FRAC=1700;
ChannelControlDisplay.channel_no =1;
ChannelControlDisplay.freq =99.0;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 99.0MHz ");
WriteUART('\n');
} }
else if(data=='2') // formal FM receiver else if(data=='2') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[1].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[1]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
REG2 = 0x1e3842; //Reg2: INT=30,FRAC=900 97.7MHz in Shanghai
SPI_RFD(REG2);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
REG3 = 0x00000003; //Reg3:AFC = 0
SPI_RFD(REG3);
FM_current_gain=20;
FM_current_INT=30;
FM_current_FRAC=900;
ChannelControlDisplay.channel_no =2;
ChannelControlDisplay.freq =90.9;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
Channel_control(ChannelControlDisplay);
Channel_control(ChannelControlDisplay);
Channel_control(ChannelControlDisplay);
Channel_control(ChannelControlDisplay);
Channel_control(ChannelControlDisplay);
Channel_control(ChannelControlDisplay);
Channel_control(ChannelControlDisplay);
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 90.9MHz ");
WriteUART('\n');
} }
else if(data=='3') // formal FM receiver else if(data=='3') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[2].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[2]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x1f3e822; //Reg2: INT=31,FRAC=1000 96.8MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=31;
FM_current_FRAC=1000;
ChannelControlDisplay.channel_no =3;
ChannelControlDisplay.freq =94.0;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 94.0MHz ");
WriteUART('\n');
} }
else if(data=='4') // formal FM receiver else if(data=='4') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[3].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[3]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x1f6a42; //Reg2: INT=31,FRAC=1700 94.7MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=31;
FM_current_FRAC=1700;
ChannelControlDisplay.channel_no =4;
ChannelControlDisplay.freq =94.7;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 94.7MHz ");
WriteUART('\n');
} }
else if(data=='5') // formal FM receiver else if(data=='5') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[4].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[4]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x1f1902; //Reg2: INT=31,FRAC=400 93.4MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=31;
FM_current_FRAC=400;
ChannelControlDisplay.channel_no =5;
ChannelControlDisplay.freq =93.4;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 93.4MHz Shanghai 990 ");
WriteUART('\n');
} }
else if(data=='6') // formal FM receiver else if(data=='6') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[5].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[5]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x1f9c42; //Reg2: INT=30,FRAC=2400 92.4MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=30;
FM_current_FRAC=2400;
ChannelControlDisplay.channel_no =6;
ChannelControlDisplay.freq =95.5;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 95.5MHz ");
WriteUART('\n');
} }
else if(data=='7') // formal FM receiver else if(data=='7') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[6].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[6]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x1e5782; //Reg2: INT=30,FRAC=1400 91.4MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=30;
FM_current_FRAC=1400;
ChannelControlDisplay.channel_no =7;
ChannelControlDisplay.freq =91.4;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: CNR 91.4MHz Jingji ");
WriteUART('\n');
} }
else if(data=='8') // formal FM receiver else if(data=='8') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[7].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[7]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x1db542; //Reg2: INT=29,FRAC=2900 89.9MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=29;
FM_current_FRAC=2900;
ChannelControlDisplay.channel_no =8;
ChannelControlDisplay.freq =89.9;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 89.9MHz Dushi 792 ");
WriteUART('\n');
} }
else if(data=='9') // formal FM receiver else if(data=='9') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[8].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[8]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x1d3842; //Reg2: INT=29,FRAC=900 97.9MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=29;
FM_current_FRAC=900;
ChannelControlDisplay.channel_no =9;
ChannelControlDisplay.freq =87.9;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 87.9MHz CNR 87.9 ");
WriteUART('\n');
} }
else if(data=='z') // formal FM receiver else if(data=='0') // formal FM receiver
{ {
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk regWrite(Profile[9].freq);
SPI_RFD(MSI_SPI_Data); Channel_control(Profile[9]);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x232bc2; //Reg2: INT=35,FRAC=700 105.7MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=35;
FM_current_FRAC=700;
ChannelControlDisplay.channel_no =10;
ChannelControlDisplay.freq =105.7;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 105.7MHz ");
WriteUART('\n');
} }
else if(data=='y') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x204b02; //Reg2: INT=32,FRAC=1200 97.2MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=34;
FM_current_FRAC=2500;
ChannelControlDisplay.channel_no =11;
ChannelControlDisplay.freq =97.2;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 97.2MHz ");
WriteUART('\n');
}
else if(data=='x') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x21a8c2; //Reg2: INT=33,FRAC=2700 101.7MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=33;
FM_current_FRAC=2700;
ChannelControlDisplay.channel_no =12;
ChannelControlDisplay.freq =101.7;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 101.7MHz Donggan 101.7 ");
WriteUART('\n');
}
else if(data=='v') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x208342; //Reg2: INT=32,FRAC=2100 101.7MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=32;
FM_current_FRAC=2100;
ChannelControlDisplay.channel_no =13;
ChannelControlDisplay.freq =98.1;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 98.1MHz ");
WriteUART('\n');
}
else if(data=='w') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x2144c2; //Reg2: INT=33,FRAC=1100 100.1MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=32;
FM_current_FRAC=2100;
ChannelControlDisplay.channel_no =14;
ChannelControlDisplay.freq =100.1;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 100.1MHz ");
WriteUART('\n');
}
else if(data=='a') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x2176c2; //Reg2: INT=33,FRAC=1900 100.9MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=33;
FM_current_FRAC=1900;
ChannelControlDisplay.channel_no =15;
ChannelControlDisplay.freq =100.9;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 100.9 MHz ");
WriteUART('\n');
}
else if(data=='b') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x226a42; //Reg2: INT=34,FRAC=1700 103.7MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=34;
FM_current_FRAC=1700;
ChannelControlDisplay.channel_no =16;
ChannelControlDisplay.freq =103.7;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 103.7 MHz ");
WriteUART('\n');
}
else if(data=='c') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x222bc2; //Reg2: INT=34,FRAC=700 102.7MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=34;
FM_current_FRAC=700;
ChannelControlDisplay.channel_no =17;
ChannelControlDisplay.freq =102.7;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 102.7 MHz ");
WriteUART('\n');
}
else if(data=='d') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x235dc2; //Reg2: INT=35,FRAC=1500 106.5MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=35;
FM_current_FRAC=1500;
ChannelControlDisplay.channel_no =18;
ChannelControlDisplay.freq =106.5;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 106.5 MHz ");
WriteUART('\n');
}
else if(data=='e') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x238982; //Reg2: INT=35,FRAC=2200 107.2MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=35;
FM_current_FRAC=1500;
ChannelControlDisplay.channel_no =19;
ChannelControlDisplay.freq =107.2;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 107.2 MHz ");
WriteUART('\n');
}
else if(data=='h') // formal FM receiver
{
MSI_SPI_Data = 0x00043420; //reg 0: 24M clk
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0028bb85; //reg5: THRESH=3000
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x23a8c2; //Reg2: INT=35,FRAC=2700 107.7MHz in Shanghai
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x0000e141; //Reg1: BB Gain decrease 20dB LNA Gain redcution: 23dB
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00200016; //Reg6: DC default value
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000004; //Reg4: Aux features
SPI_RFD(MSI_SPI_Data);
MSI_SPI_Data = 0x00000003; //Reg3:AFC = 0
SPI_RFD(MSI_SPI_Data);
FM_current_gain=20;
FM_current_INT=35;
FM_current_FRAC=1500;
ChannelControlDisplay.channel_no =20;
ChannelControlDisplay.freq =107.7;
ChannelControlDisplay.INT =FM_current_INT;
ChannelControlDisplay.FRAC =FM_current_FRAC;
Channel_control(ChannelControlDisplay);
UARTString(" Channel: 107.7 MHz ");
WriteUART('\n');
}
else else
{ {
UARTString(" Wrong command! "); UARTString(" Wrong command! ");

View File

@ -13,6 +13,8 @@ float freq_I=87.0;
RSSIType rssilist[NUM]; RSSIType rssilist[NUM];
int rssi_index=0; int rssi_index=0;
ChannelControlType channelcontrollist[OUTNUM]; ChannelControlType channelcontrollist[OUTNUM];
ChannelControlType channelcontrolmax;
/* /*
@ -249,7 +251,9 @@ void RSSIScanHandler(void)
#endif #endif
RSSIScanscreen(); RSSIScanscreen();
UARTString("Scan done!\n"); UARTString("Scan done!\n");
Start_FM_command();
regWrite(channelcontrolmax.freq);
Channel_control(channelcontrolmax);
} }
} }
@ -260,20 +264,26 @@ void RSSIScanscreen()
freq = 87; freq = 87;
i = 0; i = 0;
n = 1; n = 1;
for (k = 0; k < OUTNUM ; k++)
{
channelcontrollist[k].freq = 87.9;
channelcontrollist[k].INT = channelcontrollist[i].freq / 3;
channelcontrollist[k].FRAC = (channelcontrollist[i].freq / 3 - channelcontrollist[i].INT) * 3000;
}
for (j = 0; freq += STEP, j < (NUM - 10); j++) for (j = 0; freq += STEP, j < (NUM - 10); j++)
{ {
if (rssilist[j].RSSI < Thresh) if (rssilist[j].RSSI < Thresh)
continue; continue;
if ((rssilist[j].RSSI >= rssilist[j - 12].RSSI * 4) && (rssilist[j].RSSI >= rssilist[j + 12].RSSI * 4)) if ((rssilist[j].RSSI >= rssilist[j - 12].RSSI * 4) && (rssilist[j].RSSI >= rssilist[j + 12].RSSI * 4))
{ {
for (k = 0; (k <= i) && (k < 16); k++) for (k = i-1; k >= 0; k--)
if ((freq - channelcontrollist[k].freq) < 0.2) if ((freq - channelcontrollist[k].freq) < 0.2)
{ {
channelcontrollist[k].freq = (channelcontrollist[k].freq * n + freq) / (n + 1); channelcontrollist[k].freq = (channelcontrollist[k].freq * n + freq) / (n + 1);
n += 1; n += 1;
break; break;
} }
if ((k <= i) && (k < 16)) if (k>=0)
continue; continue;
else if (i == 0) else if (i == 0)
{ {
@ -281,17 +291,17 @@ void RSSIScanscreen()
rssi[i] = rssilist[j].RSSI; rssi[i] = rssilist[j].RSSI;
i += 1; i += 1;
} }
else if (i < OUTNUM) else if (i < OUTNUM - 1)
{ {
channelcontrollist[i].freq = freq; channelcontrollist[i].freq = freq;
rssi[i] = rssilist[j].RSSI; rssi[i] = rssilist[j].RSSI;
if (rssilist[j].RSSI < rssi[0]) i += 1;
{
rssi[i] = rssi[0];
rssi[0] = rssilist[j].RSSI;
channelcontrollist[i].freq = channelcontrollist[0].freq;
channelcontrollist[0].freq = freq;
} }
else if (i == OUTNUM - 1)
{
channelcontrollist[i].freq = freq;
rssi[i] = rssilist[j].RSSI;
Bubbling(rssi);
i += 1; i += 1;
} }
else if (rssilist[j].RSSI > rssi[0]) else if (rssilist[j].RSSI > rssi[0])
@ -306,6 +316,7 @@ void RSSIScanscreen()
} }
} }
channelcontrolmax.freq = ((float)((int)((channelcontrollist[OUTNUM - 1].freq + 0.05) * 10))) / 10;
for (i = 0; i < OUTNUM; i++) for (i = 0; i < OUTNUM; i++)
for (j = 1; j < (OUTNUM - i); j++) for (j = 1; j < (OUTNUM - i); j++)
{ {
@ -318,13 +329,74 @@ void RSSIScanscreen()
} }
for (i = 0; i < OUTNUM; i++) for (i = 0; i < OUTNUM; i++)
{ {
channelcontrollist[i].INT = floor(channelcontrollist[i].freq / 3); channelcontrollist[i].freq = ((float)((int)((channelcontrollist[i].freq + 0.05) * 10))) / 10;
channelcontrollist[i].INT = channelcontrollist[i].freq / 3;
channelcontrollist[i].FRAC = (channelcontrollist[i].freq / 3 - channelcontrollist[i].INT) * 3000; channelcontrollist[i].FRAC = (channelcontrollist[i].freq / 3 - channelcontrollist[i].INT) * 3000;
channelcontrollist[i].channel_no = i+1; channelcontrollist[i].channel_no = i+1;
if (channelcontrollist[i].freq == channelcontrolmax.freq)
channelcontrolmax.channel_no = channelcontrollist[i].channel_no;
} }
channelcontrolmax.INT = channelcontrolmax.freq / 3;
channelcontrolmax.FRAC = (channelcontrolmax.freq / 3 - channelcontrolmax.INT) * 3000;
} }
int Bubbling(int* rssi) void RSSIScanbyfilter()
{
int temp;
int i,j;
int k = 0;
int sum[200];
int rssi[200];
ChannelControlType satisfied_channelcontrollist[200];
RSSIType satisfied_rssilist[200];
for (i = 5, j = 0; i < 1045; i = i+5, j++){
sum[j] = rssilist[i-4].RSSI+rssilist[i-3].RSSI+rssilist[i-2].RSSI+rssilist[i-1].RSSI+rssilist[i].RSSI+rssilist[i+1].RSSI+rssilist[i+2].RSSI+rssilist[i+3].RSSI+rssilist[i+4].RSSI;
}
for (j = 1; j < 199; j++){
if(( sum[j] > Thresh*9 ) && ( sum[j-1] < sum[j] ) && ( sum[j+1] < sum[j] )){
satisfied_rssilist[k].RSSI = rssilist[j*5+5].RSSI;
rssi[k] = rssilist[j*5+5].RSSI;
satisfied_rssilist[k].index = j*5 + 5;
k++;
}
}
for (k = 0; k < 200; k++){
satisfied_channelcontrollist[k].freq = ((float)((int)((87 + (satisfied_rssilist[k].index-1) * 0.02 + 0.05) * 10))) / 10 ;
}
for (i = 0; i < 200; i++)
{
for (j = 1; j < 199; j++)
{
if (rssi[j] < rssi[j - 1])
{
temp = rssi[j];
rssi[j] = rssi[j - 1];
rssi[j - 1] = temp;
temp = satisfied_channelcontrollist[j].freq;
satisfied_channelcontrollist[j].freq = satisfied_channelcontrollist[j - 1].freq;
satisfied_channelcontrollist[j - 1].freq = temp;
}
}
}
for (k = 0; k < 15 ; k++){
channelcontrollist[k].freq = satisfied_channelcontrollist[k].freq ;
channelcontrollist[k].INT = channelcontrollist[k].freq / 3;
channelcontrollist[k].FRAC = (channelcontrollist[k].freq / 3 - channelcontrollist[k].INT) * 3000;
channelcontrollist[k].channel_no = k+1;
}
for (i = 0; i < OUTNUM; i++)
for (j = 1; j < (OUTNUM - i); j++)
{
if (channelcontrollist[j].freq < channelcontrollist[j - 1].freq)
{
temp = channelcontrollist[j].freq;
channelcontrollist[j].freq = channelcontrollist[j - 1].freq;
channelcontrollist[j - 1].freq = temp;
}
}
}
int Bubbling(int* rssi)
{ {
int i, j, k; int i, j, k;
float temp; float temp;

View File

@ -73,6 +73,7 @@ void RSSI_scan_cmd(void);
void RSSIScanscreen(void); void RSSIScanscreen(void);
int Bubbling(int* rssi); int Bubbling(int* rssi);
void regWrite(float freq); void regWrite(float freq);
void initialize(void);
//Key interrupt handlers //Key interrupt handlers
void KEY0(void); void KEY0(void);

View File

@ -7,7 +7,6 @@
int main() int main()
{ {
NVIC_CTRL_ADDR = 0xFFFFF; //enable lowest 2 interrupts
/* /*
char string[32] = {0}; char string[32] = {0};
@ -46,9 +45,9 @@ int main()
Start_FM_command(); Start_FM_command();
IQ_Dump_data(); IQ_Dump_data();
*/ */
NVIC_CTRL_ADDR = 0xFFFFF; //enable lowest 2 interrupts
initialize();
while(1) while(1)
{ {

75
设计需求.md Normal file
View File

@ -0,0 +1,75 @@
# 设计需求文档
## RSSI 扫频算法设计
### RSSI分布描述
<img src="docs/pic/image.png"/>
该图为频率范围$f\in[87MHz,108MHz]$下的RSSI的对数坐标分布$RSSI_{log}=10\times\log{RSSI}$。
此设计的目的是**利用编写的接口函数,筛选出图中标出的频点**。
### 需求描述
#### 输入
##### RSSIType
上图中对应的RSSI数据存放在下述定义的数据结构中
```c
typedef struct{
int index; //存放每个采样点的索引值
int RSSI; //存放RSSI的值
}RSSIType;
```
❤**注意此处的RSSI不是图中所示的对数形式请不要对RSSI的值进行Log运算尽量不要进行任何运算因为数据量大延迟很高。**
构成结构数组定义如下:
```C
#define NUM 1060
#define STEP 0.02
RSSIType rssilist[NUM];
```
不推荐更改`NUM`数组长度设定为1060`STEP`扫频步长设定为0.02MHz的数值。由于不可名状的BUG在第一次运行扫频函数时`rssilist[0]`的RSSI值为0。因此可以使用的数据为`rssilist[1]`~`rssilist[1050]`共1050个RSSIType数据结构。由于C的浮点数特性导致频率为108时仍然可以运行扫频程序因此会比期望的数量多一个
##### 门限值Thresh
`RSSI>Thresh`时对应的频率才可能成为频点,**但若该门限过低导致输出的频点多于16个时仅输出最高的16个。**
#### 输出
观察数据规律输出RSSI值最高的频点**精度要求为0.1MHz**),将所有频点的频率**从小到大**存放在以下数据结构中。
```C
typedef struct{
unsigned int channel_no; //存放频道号从1开始递增编号
float freq; //存放频点频率
unsigned int INT; //存放整数部分
unsigned int FRAC; //存放小数部分
}ChannelControlType;
```
其中`INT``FRAC`与频率的转换公式如下:
```C
int INT=floor(freq/3);
int FRAC=(freq/3-INT)*3000;
```
**可以使用提供的数据在x86平台进行测试测试完毕后需要按照注释的位置插入相应的代码并Build确认无报错**。
需要插入的部分包括:
`code_def.h`第73行声明函数名
`code_def.c`第13行创建ChannelControlType数组含有16个元素全局变量
`code_def.c`第239行调用函数
`code_def.c`第246行完成函数构建。