aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/fx3/b200/fx3_mem_map.patch
blob: 5c1ca9849087d3816966aea46c630ede456f097a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
diff -r -u cyfx3sdk/fw_build/boot_fw/cyfx3.ld cyfx3sdk-modified/fw_build/boot_fw/cyfx3.ld
--- cyfx3sdk/fw_build/boot_fw/cyfx3.ld	2018-05-23 02:25:01.000000000 -0700
+++ cyfx3sdk-modified/fw_build/boot_fw/cyfx3.ld	2020-08-22 14:54:46.407481500 -0700
@@ -39,12 +39,18 @@
 
 MEMORY
 {
+	BLANK   : ORIGIN = 0x40070000   LENGTH = 0x0100
 	SYS_MEM	: ORIGIN = 0x40078000	LENGTH = 0x7000
 	DATA	: ORIGIN = 0x4007F000	LENGTH = 0x1000
 }
 
 SECTIONS
 {
+	.blank :
+	{
+		. += 0x100;
+	} > BLANK
+
 	.text :
 	{
 		*(RESET)
diff -r -u cyfx3sdk/fw_build/fx3_fw/cyfxtx.c cyfx3sdk-modified/fw_build/fx3_fw/cyfxtx.c
--- cyfx3sdk/fw_build/fx3_fw/cyfxtx.c	2018-05-23 02:25:01.000000000 -0700
+++ cyfx3sdk-modified/fw_build/fx3_fw/cyfxtx.c	2020-08-21 12:34:14.344699800 -0700
@@ -98,7 +98,7 @@
    area which is used by the application code as well as the drivers to allocate thread
    stacks and other internal data structures.
  */
-#define CY_U3P_MEM_HEAP_BASE         (0x40038000)
+#define CY_U3P_MEM_HEAP_BASE         (0x40044000)
 #define CY_U3P_MEM_HEAP_SIZE         (0x8000)
 
 /*
diff -r -u cyfx3sdk/fw_build/fx3_fw/fx3_512k.ld cyfx3sdk-modified/fw_build/fx3_fw/fx3_512k.ld
--- cyfx3sdk/fw_build/fx3_fw/fx3_512k.ld	2018-05-23 02:25:01.000000000 -0700
+++ cyfx3sdk-modified/fw_build/fx3_fw/fx3_512k.ld	2020-08-21 12:34:14.345050200 -0700
@@ -32,11 +32,11 @@
    The default memory map used for FX3 applications is as follows:
 
    Descriptor area    Base: 0x40000000 Size: 12KB
-   Code area          Base: 0x40003000 Size: 180KB
-   Data area          Base: 0x40030000 Size: 32KB
-   Driver heap        Base: 0x40038000 Size: 32KB  (Update cyfxtx.c to change this.)
-   Buffer area        Base: 0x40040000 Size: 224KB (Update cyfxtx.c to change this.)
-   2-stage boot area  Base: 0x40078000 Size: 32KB  (Update cyfxtx.c to change this.)
+   Code area       Base: 0x40003000 Size: 212KB
+   Data area       Base: 0x40038000 Size: 32KB
+   Heap            Base: 0x40040000 Size: 16KB
+   Driver heap     Base: 0x40044000 Size: 32KB  (Update cyfxtx.c to change this.)
+   Buffer area     Base: 0x4004C000 Size: 208KB (Update cyfxtx.c to change this.)
 
    Interrupt handlers are placed in I-TCM (16KB). The first 256 bytes of ITCM are
    reserved for Exception Vectors and will be loaded during firmware initialization.
@@ -58,8 +58,8 @@
 MEMORY
 {
 	I-TCM	: ORIGIN = 0x100	LENGTH = 0x3F00
-	SYS_MEM	: ORIGIN = 0x40003000	LENGTH = 0x2D000
-	DATA	: ORIGIN = 0x40030000	LENGTH = 0x8000
+	SYS_MEM	: ORIGIN = 0x40003000	LENGTH = 0x35000
+	DATA	: ORIGIN = 0x40038000	LENGTH = 0x8000
 }
 
 SECTIONS
@@ -114,5 +114,17 @@
 		. = ALIGN(4);
 	} > DATA
 	__exidx_end = .;
+
+	PROVIDE(__exidx_end = __exidx_end);
+	
+	. = ALIGN(4);
+	__heap_start = 0x40040000;
+	PROVIDE(__heap_start = __heap_start);
+	
+	. = ALIGN(4);
+	__heap_end = 0x40044000;
+	PROVIDE(__heap_end = __heap_end);
+	
+	PROVIDE(__heap_size = __heap_end - __heap_start);
 }