Skip to content

Commit

Permalink
+hooks on all _hopefully_ OSMboxPost
Browse files Browse the repository at this point in the history
  • Loading branch information
aeickho committed May 4, 2016
1 parent 5736f84 commit 9aed347
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 13 deletions.
41 changes: 36 additions & 5 deletions annotations/2.032/flash.r
Expand Up @@ -32,6 +32,7 @@ CCa 0x0803ee8a Value of 8 enables light, but audio is muted.




CCa 0x800c000 0x2001dc10
CCa 0x800c004 0x80fa969
CCa 0x800c008 0x80937f1
Expand Down Expand Up @@ -98,6 +99,7 @@ CCa 0x800ded8 ConfigData + 0x17 (byte) F_787
af+ 0x800df84 996 Volume_Menu
CCa 0x800dfd6 ... V.o.l.u.m.e
CCa 0x800e016 glob. String ..Volume (0-9)
CCa 0x800e028 Default 1 sec
CCa 0x800e038 glob. String ..Volume (0-9)
CCa 0x800e0ac set glob. String ..Volume (0-9)
CCa 0x800e0cc V
Expand All @@ -123,7 +125,7 @@ af+ 0x800eb10 414 F_4144
af+ 0x800ecc0 418 F_4145
af+ 0x800ee94 1422 F_4143
af+ 0x800f422 48 F_251
af+ 0x800f452 18 F_5143
af+ 0x800f452 18 Menu_Back
af+ 0x800f464 32 F_86
af+ 0x800f488 294 F_4155
CCa 0x800f6b4 ... E.m.p.t.y
Expand Down Expand Up @@ -171,11 +173,33 @@ CCa 0x801274c Is Menu ProgramRadio allowedly
CCa 0x8012766 0x80127d0 .. Create_Menu_Entry_ProgramRadio
CCa 0x8012776 ... P.r.o.g.r.a.m...R.a.d.i.o
af+ 0x80127d0 880 Create_Menu_Entry_ProgramRadio
af+ 0x8012b54 854 F_5075
CCa 0x80127d4 Program Password
CCa 0x8012824 ... E.d.i.t...C.h.a
CCa 0x8012868 ... R.x...F.r.e.q.u.
CCa 0x8012896 ... T.x...F.r.e.q.
CCa 0x80128c8 ... C.h.a.n.n.e.l..N.a.m.e
CCa 0x80128fa ... T.i.m.e...O.u.t
CCa 0x801293a ... C.T.C./.D.C.S
CCa 0x801296e ... C.T.C./.D.C.S
CCa 0x80129ae ... C.o.l.o.r...C.o.
CCa 0x80129e0 ... R.e.p.e.a.t.e.r...S.l.o.t
CCa 0x8012a14 ... C.o.l.o.r...C.o.
CCa 0x8012a46 ... R.e.p.e.a.t.e.r...S.l.o.t
CCa 0x8012afa ... E.n.t.e.r...P.a.s.s.w.o.r.d
CCa 0x8012b2c 0x8012b55 .. 0x08012b54 Create_Menu_Entry_ProgramRadio_with_password_set
af+ 0x8012b54 854 Create_Menu_Entry_ProgramRadio_with_password_set
CCa 0x8012ba2 ConfigData + 1c (byte) F_5075
CCa 0x8012bb2 ConfigData + 1d (byte) F_5075
CCa 0x8012bc2 ConfigData + 1e (byte) F_5075
CCa 0x8012bd2 ConfigData + 1f (byte) F_5075
CCa 0x8012e58 ... W.r.o.n.g
CCa 0x8012e9c ... P.a.s.s.w.o.r.d.
af+ 0x80143f4 104 Create_Menu_Entry_RX_QRG_shown
af+ 0x8014464 214 Create_Menu_Entry_RX_QRG_1
af+ 0x801453a 126 Create_Menu_Entry_RX_QRG_2
af+ 0x80145b8 102 Create_Menu_Entry_RX_QRG_3
CCa 0x80145f8 with timeout
af+ 0x8014648 622 Create_Menu_Entry_RX_QRG_4
CCa 0x8014f4e S.a.v.e.d...I.n.b.o.x
af+ 0x80152ec 198 Create_Menu_Entry_RadioInfo
af+ 0x8015464 122 F_5076
Expand Down Expand Up @@ -854,6 +878,13 @@ CCa 0x80294ec Get ConfigData + 0x2 (byte) F_4137
CCa 0x80295a6 Get ConfigData + 0x2 (byte) F_4137
CCa 0x80295d2 Get ConfigData + 0x2 (byte) F_4137
CCa 0x80295d2 Get ConfigData + 0x2 (byte) F_4137
CCa 0x80295d4 Check if keypad tone enabled
CCa 0x80295f6 Send make keypad tone to beep prozess
CCa 0x80295fa char * 0x2001d345 last pressed key
CCa 0x8029600 green key
CCa 0x8029604 up key
CCa 0x8029608 down key
CCa 0x802960c red key
CCa 0x8029778 Get ConfigData + 0x2 (byte) F_4137
af+ 0x8029810 104 F_4241
af+ 0x8029898 156 F_4242
Expand Down Expand Up @@ -889,6 +920,7 @@ af+ 0x802a918 36 F_291
CCa 0x802a91c ConfigData + 0x1 (byte) ubfx r0, r0, 2, 1 .. lsls r0, r0, 0x1f F_291
af+ 0x802a93c 24 F_292
af+ 0x802a960 4084 Beep_Process
CCa 0x802aa5c 0x24 end of rx (Roger beep)
CCa 0x802af8e ConfigData + 0xf (byte) Beep_Process
CCa 0x802af9c ConfigData + 0xf (byte) Beep_Process
af+ 0x802b958 236 F_5027
Expand Down Expand Up @@ -2327,14 +2359,13 @@ af+ 0x8096c18 76 F_4542
af+ 0x8096c64 50 F_4543
af+ 0x8096c96 56 F_4544
af+ 0x80f96b0 6 F_5074


f ConfigData 0x50 @ 0x2001c658
f WelcomeBMP 1 @ 0x80f9ca8 # size is not correct
f WelcomeLine1 4 @ 0x2001cecc
fC WelcomeLine1 *Welcome_Line1
f WelcomeLine2 4 @ 0x2001cee0



CCa 0x8044184 _Start Mbox_
CCa 0x804910e _uC/OS-II TmrLock_
CCa 0x804911a _uC/OS-II TmrSignal_
Expand Down
37 changes: 31 additions & 6 deletions applet/merge.py
Expand Up @@ -189,16 +189,16 @@ def hookbl(self,adr,handler,oldhandler=None):
0x80443fc, 0x8044430, 0x8044464, 0x8044498, 0x80444cc, 0x8044500, 0x8044534, 0x8049150,
0x804ae5c];
### only for debug and information addiction
#for adr in OSTaskCreateExt_hook_list:
# merger.hookbl(adr, sapplet.getadr("OSTaskCreateExt_hook"),0);
for adr in OSTaskCreateExt_hook_list:
merger.hookbl(adr, sapplet.getadr("OSTaskCreateExt_hook"),0);

OSTaskNameSet_hook_list=[
0x8042374, 0x8044034, 0x80442d0, 0x8044304, 0x8044338, 0x804436c, 0x80443a0, 0x80443d4,
0x8044408, 0x804443c, 0x8044470, 0x80444a4, 0x80444d8, 0x804450c, 0x8044540, 0x804915c,
0x804ae68];
### only for debug and information addiction
#for adr in OSTaskNameSet_hook_list:
# merger.hookbl(adr, sapplet.getadr("OSTaskNameSet_hook"),0);
for adr in OSTaskNameSet_hook_list:
merger.hookbl(adr, sapplet.getadr("OSTaskNameSet_hook"),0);

# os semaphore hook .. now we can crate own semaphores
merger.hookbl(0x080441f4,sapplet.getadr("OSSemCreate_hook"),0);
Expand Down Expand Up @@ -283,8 +283,8 @@ def hookbl(self,adr,handler,oldhandler=None):
0x0801b2ca, 0x0801b2f2, 0x0801b364, 0x0801ad50, 0x0801ad82, 0x0801adec, 0x0801ae1e, 0x0801245c,
0x080198a2, 0x0801992c];
### only for debug and information addiction
#for adr in Create_MenuEntrylist:
# merger.hookbl(adr,sapplet.getadr("create_menu_entry_hook"),0);
for adr in Create_MenuEntrylist:
merger.hookbl(adr,sapplet.getadr("create_menu_entry_hook"),0);

# additional menu hook
merger.hookbl(0x08012740,sapplet.getadr("create_menu_utilies_hook"),0);
Expand Down Expand Up @@ -314,6 +314,31 @@ def hookbl(self,adr,handler,oldhandler=None):
merger.hookbl(0x0803ef64, sapplet.getadr("dmr_apply_privsquelch_hook"),0); #Private calls.
merger.hookbl(0x0803eea0, sapplet.getadr("dmr_apply_squelch_hook"),0); #Public calls.

#All _maybe_ hooks on OSMboxPost
OSMboxPost_hook_list=[
0x0801f11e, 0x0801f16e, 0x08020540, 0x08027bec, 0x080284f8, 0x0802859c, 0x08028628, 0x0802873a,
0x08028c6a, 0x08028d9e, 0x08028de8, 0x08028eca, 0x08028f04, 0x0802900c, 0x0802915e, 0x080293c4,
0x08029508, 0x08029552, 0x080295c0, 0x080295f6, 0x0802979c, 0x0802983c, 0x08029868, 0x080298fe,
0x08029970, 0x0802998a, 0x080299f2, 0x08029a28, 0x08029a74, 0x08029aac, 0x08029b04, 0x08029b3c,
0x08029bd8, 0x08029c64, 0x08029cd8, 0x08029cfa, 0x08029d1c, 0x08029d34, 0x08029daa, 0x08029dfa,
0x08029e5c, 0x08029e8c, 0x08029ef6, 0x08029f28, 0x08029fa4, 0x08029fc4, 0x08029ffe, 0x0802a054,
0x0802a1ac, 0x0802ce18, 0x0802df4e, 0x08030aee, 0x08030c2e, 0x08030cc4, 0x08030da2, 0x08031006,
0x08031060, 0x0803b786, 0x0803b7a6, 0x0803b7f2, 0x0803b86e, 0x0803b970, 0x0803ba02, 0x0803bb50,
0x0803bc04, 0x0803bcc6, 0x0803bd2c, 0x0803bdac, 0x0803bdc4, 0x0803be7e, 0x0803bf28, 0x0803bf64,
0x0803bf82, 0x0803bf96, 0x0803bfbc, 0x0803c090, 0x0803c0c2, 0x0803c158, 0x0803c18a, 0x0803c1a0,
0x0803c1fe, 0x0803c278, 0x0803c3ce, 0x0803c474, 0x0803c50a, 0x0803c542, 0x0803c71c, 0x0803c75e,
0x0803c7f6, 0x0803c8cc, 0x0803c936, 0x0803c956, 0x0803cad4, 0x0803cbb6, 0x0803cbde, 0x0803cc78,
0x0803cca0, 0x0803cd36, 0x0803cd54, 0x0803cd82, 0x0803cda0, 0x0803cdfa, 0x0803ce62, 0x0803ce96,
0x0803cece, 0x0803cf02, 0x0803cf52, 0x0803cf90, 0x0803d5ac, 0x0803d8be, 0x0803dc7c, 0x0803dd94,
0x0803e252, 0x0803eaa8, 0x0803eb90, 0x0803ebf2, 0x0803ec08, 0x0803eea0, 0x0803ef64, 0x0803f01c,
0x0803f1b6, 0x0803f2ae, 0x0803f2fc, 0x0803f30e, 0x0803f3f4, 0x0803f4b0, 0x0803f524, 0x0803f668,
0x0803f7b8, 0x0803f7dc, 0x0803f81e, 0x0803f846, 0x0803f872, 0x0803f8aa, 0x0803f8ca, 0x0803f8f6,
0x0803fd1a, 0x0803fd76, 0x08040340, 0x080406f4, 0x08040924, 0x08040ca8, 0x08040cc8, 0x08040d04,
0x080411c2, 0x080411da, 0x08041226, 0x0804358c, 0x080440ea, 0x080446b8, 0x080447da, 0x0804b724,
0x0808ce7e, 0x0808ce94, 0x0808ceda, 0x0808cf0c, 0x0808cfba];
for adr in OSMboxPost_hook_list:
merger.hookbl(adr,sapplet.getadr("OSMboxPost_hook"),0);

#Throwaway hook to see if adr is called.
#merger.hookstub(0x0803f03c,
# sapplet.getadr("demo"));
Expand Down
2 changes: 2 additions & 0 deletions applet/src/md380-2.032.c
Expand Up @@ -103,6 +103,8 @@ OS_EVENT ** OSSemCreate_hook1_event_mem=0x2001d128;
void (*OSSemPend)(OS_EVENT *pevent, uint32_t timeout, uint8_t *perr)=0x803da78+1;
uint8_t (*OSSemPost)(OS_EVENT *pevent)=0x803db68+1;

uint8_t (*md380_OSMboxPost)(OS_EVENT *pevent, void *pmsg)=0x080303b4+1;

//! Functions and Variabes regarding the menu
void *(*main_menu)(void *)=0x08039c23;
void *(*md380_create_main_meny_entry)(void)=0x0800c189;
Expand Down
1 change: 1 addition & 0 deletions applet/src/md380.h
Expand Up @@ -95,6 +95,7 @@ extern OS_EVENT *(*OSSemCreate)(uint16_t);
extern void (*OSSemPend)(OS_EVENT *pevent, uint32_t timeout, uint8_t *perr);
extern uint8_t (*OSSemPost)(OS_EVENT *pevent);

extern uint8_t (*md380_OSMboxPost)(OS_EVENT *pevent, void *pmsg);


//! Functions and Variabes regarding the menu
Expand Down
37 changes: 35 additions & 2 deletions applet/src/os.c
Expand Up @@ -17,7 +17,7 @@
OS_EVENT* debug_line_sem;

OS_EVENT ** OSSemCreate_hook0_event_mem;
OS_EVENT ** OSSemCreate_hook1_event_mem;
OS_EVENT ** OSSemCreate_hook1_event_mem;


INT8U (OSTaskCreateExt_hook)(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio, INT16U id, OS_STK *pbos, INT32U stk_size, void *pext, INT16U opt) {
Expand All @@ -44,4 +44,37 @@ if ( debug_line_sem == NULL ) {
#ifdef DEBUG
printf("debug_line_sem %x\n", debug_line_sem);
#endif
}
}


void pevent_to_name(OS_EVENT *pevent, void *pmsg) {
if ( pevent == (void *) 0x20015f0c ) {
printf("to Beep_Process: %x ..", * (uint8_t*)pmsg);
switch (* (uint8_t*)pmsg ) {
case 0x24:
printf("roger beep ");
break;
case 0x27:
printf("keypad tone ");
break;
case 0xe:
printf("fail to sync with relay ");
break;
default:
printf("not known ");
break;
}
}
printf("Data: ");
printhex(pmsg, 10);
printf("\n");
}


uint8_t OSMboxPost_hook (OS_EVENT *pevent, void *pmsg) {
void *return_addr;
__asm__("mov %0,r14" : "=r" (return_addr));

This comment has been minimized.

Copy link
@aeickho

aeickho May 4, 2016

Author Collaborator

tnx to @hwhw for this code line ❤️

printf("OSMboxPost_hook 0x%x 0x%x 0x%x ", return_addr, pevent, pmsg);
pevent_to_name(pevent, pmsg);
return(md380_OSMboxPost(pevent, pmsg));
}

0 comments on commit 9aed347

Please sign in to comment.