This source file includes following definitions.
- shutdown
- get_flash_params_count
- debug_led
- camera_set_led
- save_rom_log
1 #include "platform.h"
2
3
4
5
6
7
8
9
10
11
12 void shutdown() {
13 volatile long *p = (void*)0xc02200a0;
14 asm(
15 "MRS R1, CPSR\n"
16 "AND R0, R1, #0x80\n"
17 "ORR R1, R1, #0x80\n"
18 "MSR CPSR_cf, R1\n"
19 :::"r1","r0"
20 );
21 *p = 0x44;
22 while(1);
23 }
24
25
26 int get_flash_params_count(void) {
27 return 110;
28 }
29
30 #define LED_PR 0xC02200C4
31
32
33 void debug_led(int state) {
34 volatile long *p=(void*)LED_PR;
35 if(state)
36 p[0]=0x46;
37 else
38 p[0]=0x44;
39 }
40
41 #define LED_BASE 0xC02200C0
42
43 void camera_set_led(int led, int state, __attribute__ ((unused))int bright) {
44 int leds[] = {12,16,4,8,4,0,4};
45 if(led < 4 || led > 10 || led == 6) return;
46 volatile long *p=(void*)LED_BASE + leds[led-4];
47 if(state)
48 p[0]=0x46;
49 else
50 p[0]=0x44;
51 }
52
53 #ifdef CAM_CONSOLE_LOG_ENABLED
54 void save_rom_log() {
55 asm volatile(
56 "MOV R0, #0\n"
57 "MOV R1, #1\n"
58 "STMDB SP!, {R0, R1, LR}\n"
59 "MOV R0, SP\n"
60 "MOV LR, PC\n"
61 "BL _GetLogToFile\n"
62 "LDMIA SP!, {R0, R1, LR}\n"
63 );
64 }
65 #endif