提升亮度调节精度至百分比

This commit is contained in:
2026-07-26 23:20:44 +08:00
parent 9321568920
commit e5e899a8f1
43 changed files with 1914 additions and 1961 deletions
@@ -41,7 +41,7 @@ uint16_t deadTime_W = _deadTime;
uint8_t driveMode=1;
uint8_t PWMMAX=100; //最大占空比
uint8_t Brightness=10;
uint8_t Brightness=BRIGHTNESS_MAX_PERCENT;
// 切换 PWM 输出管脚,蓝牙调用此方法,切换设备输出线序
uint16_t W_PWM_duty;//初始化暖光
@@ -93,8 +93,8 @@ void PWM_SetDuty(uint8_t PWMX ,uint8_t duty) {
static uint16_t scale_display_value(uint16_t value)
{
if(value > 100U) value = 100U;
if(Brightness > 10U) return value;
return (uint16_t)(((uint32_t)value * Brightness + 5U) / 10U);
if(Brightness >= BRIGHTNESS_MAX_PERCENT) return value;
return (uint16_t)(((uint32_t)value * Brightness + 50U) / 100U);
}
void UpdateDisplay(void) // static update with global brightness
@@ -65,6 +65,10 @@ extern uint8_t driveMode;
extern uint8_t PWMMAX;
extern uint8_t Brightness;
#define BRIGHTNESS_MIN_PERCENT 10U
#define BRIGHTNESS_MAX_PERCENT 100U
#define BRIGHTNESS_RF_STEP_PERCENT 10U
#define DEVIATION_FREQ 10
#define DEVIATION_DUTYCYCLE 10
@@ -376,8 +376,15 @@ void _433_fun(){
case Brightness_L:
if(POWEROFF==deviceStatus)break;
if(Mode==mode0){
Brightness--;
if(Brightness<=2){Brightness=2;}
if(Brightness <=
(BRIGHTNESS_MIN_PERCENT + BRIGHTNESS_RF_STEP_PERCENT))
{
Brightness = BRIGHTNESS_MIN_PERCENT;
}
else
{
Brightness -= BRIGHTNESS_RF_STEP_PERCENT;
}
}else {
if(Speed<10)Speed++;
}
@@ -385,8 +392,15 @@ void _433_fun(){
case Brightness_H:
if(POWEROFF==deviceStatus)break;
if(Mode==mode0){
Brightness++;
if(Brightness>=10){Brightness=10;}
if(Brightness >=
(BRIGHTNESS_MAX_PERCENT - BRIGHTNESS_RF_STEP_PERCENT))
{
Brightness = BRIGHTNESS_MAX_PERCENT;
}
else
{
Brightness += BRIGHTNESS_RF_STEP_PERCENT;
}
}else{
if(Speed>1)Speed--;
}
@@ -69,6 +69,9 @@ unsigned char get_checksum(unsigned char *ptrdata, unsigned char length)
return CheckSum;
}
#define FLASH_BRIGHTNESS_FORMAT_INDEX 14U
#define FLASH_BRIGHTNESS_PERCENT_MARK 0xA5U
void read_user_data(void)
{
@@ -78,6 +81,24 @@ void read_user_data(void)
Mode = r_data[2];
Brightness = r_data[3];
/*
* Firmware before the percent-brightness update stored 2..10.
* Byte 14 was unused, so use it as an explicit format marker.
*/
if(r_data[FLASH_BRIGHTNESS_FORMAT_INDEX] !=
FLASH_BRIGHTNESS_PERCENT_MARK)
{
if(Brightness >= 2U && Brightness <= 10U)
Brightness = (uint8_t)(Brightness * 10U);
else
Brightness = BRIGHTNESS_MAX_PERCENT;
}
if(Brightness < BRIGHTNESS_MIN_PERCENT)
Brightness = BRIGHTNESS_MIN_PERCENT;
else if(Brightness > BRIGHTNESS_MAX_PERCENT)
Brightness = BRIGHTNESS_MAX_PERCENT;
Speed = r_data[7];
deviceStatus = r_data[8];
@@ -138,6 +159,7 @@ void wright_user_data(void)
app_data[11] = 0;
app_data[12] = is_time;
app_data[13] = 0;
app_data[FLASH_BRIGHTNESS_FORMAT_INDEX] = FLASH_BRIGHTNESS_PERCENT_MARK;
app_data[15] = match_success;
@@ -182,4 +204,3 @@ void fmc_spi_read(void)
@@ -14,14 +14,19 @@ static uint8_t approach_target(uint8_t current, uint8_t target)
void Light_Transition_Task(void)
{
uint8_t target_brightness = 0U;
uint8_t target_w;
uint8_t target_c;
uint16_t brightness_scale;
if(deviceStatus != POWEROFF) target_brightness = Brightness;
brightness_scale = target_brightness * 205U;
W_PWM_duty = approach_target(
(uint8_t)W_PWM_duty, (uint8_t)(W_PWM * brightness_scale >> 11));
C_PWM_duty = approach_target(
(uint8_t)C_PWM_duty, (uint8_t)(C_PWM * brightness_scale >> 11));
/* 41 / 4096 is approximately 1 / 100, avoiding division in this task. */
brightness_scale = (uint16_t)target_brightness * 41U;
target_w =
(uint8_t)(((uint32_t)W_PWM * brightness_scale + 2048U) >> 12);
target_c =
(uint8_t)(((uint32_t)C_PWM * brightness_scale + 2048U) >> 12);
W_PWM_duty = approach_target((uint8_t)W_PWM_duty, target_w);
C_PWM_duty = approach_target((uint8_t)C_PWM_duty, target_c);
Light_Transition_FadeActive =
deviceStatus == POWEROFF && (W_PWM_duty != 0U || C_PWM_duty != 0U);
@@ -134,8 +134,11 @@ void scan_uart(uint8_t *arr)
case 4:
if(POWEROFF==deviceStatus)break;
if(Mode==mode0){
if(user_rx_buf[1]<=20)user_rx_buf[1]=20;
Brightness=user_rx_buf[1]/10;
if(user_rx_buf[1] < BRIGHTNESS_MIN_PERCENT)
user_rx_buf[1] = BRIGHTNESS_MIN_PERCENT;
else if(user_rx_buf[1] > BRIGHTNESS_MAX_PERCENT)
user_rx_buf[1] = BRIGHTNESS_MAX_PERCENT;
Brightness = user_rx_buf[1];
}
break;
case 5:
@@ -126,7 +126,7 @@ void ble_state_sync_poll(void)
ble_state_dirty |= BLE_STATE_DIRTY_POWER;
if((uint8_t)(choose_mode_falsg + 1U) != ble_last_mode)
ble_state_dirty |= BLE_STATE_DIRTY_MODE;
if((uint8_t)(Brightness * 10U) != ble_last_brightness)
if(Brightness != ble_last_brightness)
ble_state_dirty |= BLE_STATE_DIRTY_BRIGHTNESS;
if(Speed != ble_last_speed)
ble_state_dirty |= BLE_STATE_DIRTY_SPEED;
@@ -149,7 +149,7 @@ void ble_state_sync_poll(void)
}
else if(ble_state_dirty & BLE_STATE_DIRTY_BRIGHTNESS)
{
value = Brightness * 10U;
value = Brightness;
data[3] = 0x04U;
sent_mask = BLE_STATE_DIRTY_BRIGHTNESS;
}
File diff suppressed because it is too large Load Diff
@@ -28,47 +28,14 @@ Project File Date: 07/26/2026
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\Keil_v5\ARM\ARMCC\Bin'
Build target 'ble-sdk-xip_scan'
Note: source file '..\app\src\uart.c' - object file renamed from '.\Objects\uart.o' to '.\Objects\uart_1.o'.
compiling timeslice.c...
..\app\src\mode.h(39): warning: #1295-D: Deprecated declaration choice_mode - give arg types
void choice_mode();
..\app\src\mode.h(40): warning: #1295-D: Deprecated declaration set_mode - give arg types
void set_mode();
..\app\src\mode.h(41): warning: #1295-D: Deprecated declaration Start_PWM - give arg types
void Start_PWM();
..\app\src\mode.h(42): warning: #1295-D: Deprecated declaration Stop_PWM - give arg types
void Stop_PWM();
..\app\src\mode.h(43): warning: #1295-D: Deprecated declaration Set_timing - give arg types
void Set_timing();
..\app\src\RF433.h(185): warning: #1295-D: Deprecated declaration rf433_receive - give arg types
void rf433_receive();
..\app\src\RF433.h(186): warning: #1295-D: Deprecated declaration rf433_gpio_init - give arg types
void rf433_gpio_init();
..\app\src\RF433.h(187): warning: #1295-D: Deprecated declaration scan_433 - give arg types
void scan_433();
..\app\src\RF433.h(188): warning: #1295-D: Deprecated declaration Lock_Pwm7xd - give arg types
void Lock_Pwm7xd();
..\app\src\RF433.h(189): warning: #1295-D: Deprecated declaration Delay_50us - give arg types
void Delay_50us();
..\app\src\RF433.h(190): warning: #1295-D: Deprecated declaration Encoder_key - give arg types
void Encoder_key();
..\app\src\pwm.h(130): warning: #1295-D: Deprecated declaration _PWM_INIT - give arg types
compiling light_transition.c...
..\app\src\pwm.h(134): warning: #1295-D: Deprecated declaration _PWM_INIT - give arg types
void _PWM_INIT();
..\app\src\pwm.h(136): warning: #1295-D: Deprecated declaration adc_Init - give arg types
..\app\src\pwm.h(140): warning: #1295-D: Deprecated declaration adc_Init - give arg types
void adc_Init();
..\app\src\pwm.h(137): warning: #1295-D: Deprecated declaration My_ADC_Get_Value - give arg types
..\app\src\pwm.h(141): warning: #1295-D: Deprecated declaration My_ADC_Get_Value - give arg types
void My_ADC_Get_Value();
..\app\src\pwm.h(138): warning: #1295-D: Deprecated declaration gpio_pullup_input_inter_test - give arg types
void gpio_pullup_input_inter_test();
..\app\src\timeslice.c: 15 warnings, 0 errors
compiling rgblight.c...
compiling Mode.c...
..\app\src\pwm.h(130): warning: #1295-D: Deprecated declaration _PWM_INIT - give arg types
void _PWM_INIT();
..\app\src\pwm.h(136): warning: #1295-D: Deprecated declaration adc_Init - give arg types
void adc_Init();
..\app\src\pwm.h(137): warning: #1295-D: Deprecated declaration My_ADC_Get_Value - give arg types
void My_ADC_Get_Value();
..\app\src\pwm.h(138): warning: #1295-D: Deprecated declaration gpio_pullup_input_inter_test - give arg types
..\app\src\pwm.h(142): warning: #1295-D: Deprecated declaration gpio_pullup_input_inter_test - give arg types
void gpio_pullup_input_inter_test();
..\app\src\mode.h(39): warning: #1295-D: Deprecated declaration choice_mode - give arg types
void choice_mode();
@@ -80,81 +47,19 @@ compiling Mode.c...
void Stop_PWM();
..\app\src\mode.h(43): warning: #1295-D: Deprecated declaration Set_timing - give arg types
void Set_timing();
..\app\src\RF433.h(185): warning: #1295-D: Deprecated declaration rf433_receive - give arg types
void rf433_receive();
..\app\src\RF433.h(186): warning: #1295-D: Deprecated declaration rf433_gpio_init - give arg types
void rf433_gpio_init();
..\app\src\RF433.h(187): warning: #1295-D: Deprecated declaration scan_433 - give arg types
void scan_433();
..\app\src\RF433.h(188): warning: #1295-D: Deprecated declaration Lock_Pwm7xd - give arg types
void Lock_Pwm7xd();
..\app\src\RF433.h(189): warning: #1295-D: Deprecated declaration Delay_50us - give arg types
void Delay_50us();
..\app\src\RF433.h(190): warning: #1295-D: Deprecated declaration Encoder_key - give arg types
void Encoder_key();
..\app\src\Mode.c: 15 warnings, 0 errors
compiling usr_server.c...
..\app\src\Mode.h(39): warning: #1295-D: Deprecated declaration choice_mode - give arg types
void choice_mode();
..\app\src\Mode.h(40): warning: #1295-D: Deprecated declaration set_mode - give arg types
void set_mode();
..\app\src\Mode.h(41): warning: #1295-D: Deprecated declaration Start_PWM - give arg types
void Start_PWM();
..\app\src\Mode.h(42): warning: #1295-D: Deprecated declaration Stop_PWM - give arg types
void Stop_PWM();
..\app\src\Mode.h(43): warning: #1295-D: Deprecated declaration Set_timing - give arg types
void Set_timing();
..\app\src\PWM.h(130): warning: #1295-D: Deprecated declaration _PWM_INIT - give arg types
void _PWM_INIT();
..\app\src\PWM.h(136): warning: #1295-D: Deprecated declaration adc_Init - give arg types
void adc_Init();
..\app\src\PWM.h(137): warning: #1295-D: Deprecated declaration My_ADC_Get_Value - give arg types
void My_ADC_Get_Value();
..\app\src\PWM.h(138): warning: #1295-D: Deprecated declaration gpio_pullup_input_inter_test - give arg types
void gpio_pullup_input_inter_test();
..\app\src\usr_server.c(230): warning: #223-D: function "ble_callback" declared implicitly
ble_callback(co_buf_data(p_data)[0],co_buf_data(p_data)[1],co_buf_data(p_data)[2],co_buf_data(p_data)[3]);
..\app\src\usr_server.c: 10 warnings, 0 errors
compiling app_task.c...
..\app\src\app_task.c(450): warning: #223-D: function "ke_timer_set" declared implicitly
ke_timer_set(APP_SECOND_ADV_START, TASK_APP, 400); // start open noconnect adv
..\app\src\app_task.c(463): warning: #61-D: integer operation result is out of range
value &= ~(0xff << 24);
..\app\src\app_task.c(473): warning: #223-D: function "custom_svc_add" declared implicitly
if (!custom_svc_add()) {
..\app\src\app_task.c(496): warning: #223-D: function "ke_timer_set" declared implicitly
ke_timer_set(APP_SCAN_START, TASK_APP, 10);
..\app\src\app_task.c(640): warning: #177-D: variable "p_param" was declared but never referenced
struct gapm_ext_adv_report_ind *p_param = (struct gapm_ext_adv_report_ind *)param;
..\app\src\app_task.c(688): warning: #223-D: function "xc_ble_gatt_cli_mtu_exch" declared implicitly
xc_ble_gatt_cli_mtu_exch(conidx, app_env.user_lid);
..\app\src\app_task.c(804): warning: #223-D: function "ke_timer_set" declared implicitly
ke_timer_set(APP_SCAN_STOP, TASK_APP, 200); // start open noconnect adv
..\app\src\app_task.c(818): warning: #223-D: function "ke_timer_set" declared implicitly
ke_timer_set(APP_SCAN_START, TASK_APP, 900); // start open noconnect adv
..\app\src\app_task.c(835): warning: #223-D: function "app_switch_mode" declared implicitly
app_switch_mode(app_mode);
..\app\src\app_task.c(836): warning: #940-D: missing return statement at end of non-void function "app_mode_switch_handler"
}
..\app\src\app_task.c(837): warning: #159-D: declaration is incompatible with previous "app_switch_mode" (declared at line 835)
void app_switch_mode(uint8_t mode)
..\app\src\app_task.c(845): warning: #223-D: function "ke_timer_set" declared implicitly
ke_timer_set(APP_SECOND_ADV_START, TASK_APP, 400); // start open noconnect adv
..\app\src\app_task.c(306): warning: #177-D: function "app_get_handler" was declared but never referenced
static uint8_t app_get_handler(const struct app_subtask_handlers *handler_list_desc, ke_msg_id_t msgid, void *p_param,
..\app\src\app_task.c: 13 warnings, 0 errors
..\app\src\light_transition.c: 9 warnings, 0 errors
linking...
Program Size: Code=27664 RO-data=1380 RW-data=2740 ZI-data=3700
Program Size: Code=27716 RO-data=1380 RW-data=2740 ZI-data=3700
FromELF: creating hex file...
After Build - User command #1: fromelf --bin --output=app.bin .\Objects\Xinc_ble_sdk.axf
After Build - User command #2: .\output_tool\ge_ota_scan.bat
Size of file: 29328 bytes.
all_size=29328
Size of file: 29380 bytes.
all_size=29380
dual_xip
Addr:13000
Size:0x7290
Size:0x72c4
BAddr:0x40000
Acheck:0x686820c0
Acheck:0x42b99760
SoftVer:0x10
RomVer:0x20
LoadAddr:0x11013000
@@ -182,7 +87,7 @@ status2=1
updata file success !
已复制 1 个文件。
已复制 1 个文件。
".\Objects\Xinc_ble_sdk.axf" - 0 Error(s), 53 Warning(s).
".\Objects\Xinc_ble_sdk.axf" - 0 Error(s), 9 Warning(s).
<h2>Software Packages used:</h2>
@@ -195,7 +100,7 @@ Package Vendor: ARM
D:/Program Files/Keil_v5/ARM/Packs/ARM/CMSIS/5.9.0/Device/ARM/ARMCM0/Include
<h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:26
Build Time Elapsed: 00:00:07
</pre>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -3,7 +3,7 @@
<title>Static Call Graph - [.\Objects\Xinc_ble_sdk.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\Xinc_ble_sdk.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sun Jul 26 21:35:39 2026
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sun Jul 26 23:18:52 2026
<BR><P>
<H3>Maximum Stack Usage = 768 bytes + Unknown(Functions without stacksize, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -266,7 +266,6 @@ Global Symbols
<LI><a href="#[13b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;read_user_data (via Veneer)
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_433_fun (via Veneer)
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temperature (via Veneer)
<LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;scan_uart (via Veneer)
<LI><a href="#[195]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Bridge_Service_1ms
</UL>
@@ -1499,8 +1498,8 @@ Global Symbols
<P><STRONG><a name="[12]"></a>Hour_Callback</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, xc_drv_rtc.o(i.Hour_Callback))
<BR>[Address Reference Count : 1]<UL><LI> xc_drv_rtc.o(.data)
</UL>
<P><STRONG><a name="[da]"></a>Light_Transition_Task</STRONG> (Thumb, 84 bytes, Stack size 16 bytes, light_transition.o(i.Light_Transition_Task))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Light_Transition_Task
<P><STRONG><a name="[da]"></a>Light_Transition_Task</STRONG> (Thumb, 94 bytes, Stack size 24 bytes, light_transition.o(i.Light_Transition_Task))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = Light_Transition_Task
</UL>
<BR>[Calls]<UL><LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;approach_target
</UL>
@@ -1658,7 +1657,7 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_xinc.o(RESET)
</UL>
<P><STRONG><a name="[e8]"></a>_433_fun</STRONG> (Thumb, 296 bytes, Stack size 24 bytes, rf433.o(i._433_fun))
<P><STRONG><a name="[e8]"></a>_433_fun</STRONG> (Thumb, 294 bytes, Stack size 24 bytes, rf433.o(i._433_fun))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = _433_fun &rArr; temperature
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temperature
@@ -1922,7 +1921,7 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[101]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_callback
</UL>
<P><STRONG><a name="[1d]"></a>ble_state_sync_poll</STRONG> (Thumb, 318 bytes, Stack size 24 bytes, usr_server.o(i.ble_state_sync_poll))
<P><STRONG><a name="[1d]"></a>ble_state_sync_poll</STRONG> (Thumb, 308 bytes, Stack size 24 bytes, usr_server.o(i.ble_state_sync_poll))
<BR><BR>[Stack]<UL><LI>Max Depth = 200 + Unknown Stack Size
<LI>Call Chain = ble_state_sync_poll &rArr; slave_send_data &rArr; __2printf &rArr; _printf_char_file &rArr; _printf_char_common &rArr; __printf
</UL>
@@ -2133,7 +2132,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xc_pwm_init
</UL>
<P><STRONG><a name="[13b]"></a>read_user_data</STRONG> (Thumb, 182 bytes, Stack size 24 bytes, fmc_spi.o(i.read_user_data))
<P><STRONG><a name="[13b]"></a>read_user_data</STRONG> (Thumb, 222 bytes, Stack size 24 bytes, fmc_spi.o(i.read_user_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = read_user_data &rArr; get_checksum
</UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_checksum
@@ -2198,7 +2197,7 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> timeslice.o(.data)
</UL>
<P><STRONG><a name="[115]"></a>scan_uart</STRONG> (Thumb, 274 bytes, Stack size 32 bytes, uart_1.o(i.scan_uart))
<P><STRONG><a name="[115]"></a>scan_uart</STRONG> (Thumb, 282 bytes, Stack size 32 bytes, uart_1.o(i.scan_uart))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = scan_uart &rArr; __ARM_common_switch8
</UL>
<BR>[Calls]<UL><LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8
@@ -2206,7 +2205,6 @@ Global Symbols
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Stop_PWM
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Start_PWM
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;startTimer
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[15]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ble_message_process
</UL>
@@ -2216,7 +2214,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[18]"></a>set_mode</STRONG> (Thumb, 182 bytes, Stack size 24 bytes, mode.o(i.set_mode))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = set_mode &rArr; Light_Transition_Task
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = set_mode &rArr; Light_Transition_Task
</UL>
<BR>[Calls]<UL><LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8
<LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Light_Transition_Task
@@ -2304,7 +2302,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[105]"></a>wright_user_data</STRONG> (Thumb, 176 bytes, Stack size 8 bytes, fmc_spi.o(i.wright_user_data))
<P><STRONG><a name="[105]"></a>wright_user_data</STRONG> (Thumb, 180 bytes, Stack size 8 bytes, fmc_spi.o(i.wright_user_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = wright_user_data &rArr; get_checksum
</UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_checksum
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
;#<FEEDBACK># ARM Linker, 5060750: Last Updated: Sun Jul 26 21:35:40 2026
;#<FEEDBACK># ARM Linker, 5060750: Last Updated: Sun Jul 26 23:18:52 2026
;VERSION 0.2
;FILE aes.o
__asm___5_aes_c____REV16 <= USED 0
Binary file not shown.
Binary file not shown.