Skip to content

Instantly share code, notes, and snippets.

@mvduin
Created March 21, 2017 04:02
Show Gist options
  • Save mvduin/656a1f85f20a0f0be59814595f4044e0 to your computer and use it in GitHub Desktop.
Save mvduin/656a1f85f20a0f0be59814595f4044e0 to your computer and use it in GitHub Desktop.
empty PRU program with clpru
int main() {
return 0;
}
;******************************************************************************
;* PRU C/C++ Codegen Unix v2.1.4 *
;* Date/Time created: Tue Mar 21 04:57:50 2017 *
;******************************************************************************
.compiler_opts --abi=eabi --endian=little --hll_source=on --object_format=elf --silicon_version=3 --symdebug:none
; optpru --call_assumptions=3 --gen_opt_info=2 /tmp/08571jbUso2 /tmp/08571YOCaL9 --opt_info_filename=empty.nfo
; acpiapru -@/tmp/08571SM9heD
.sect ".text:main"
.clink
.global ||main||
;***************************************************************
;* FNAME: main FR SIZE: 0 *
;* *
;* FUNCTION ENVIRONMENT *
;* *
;* FUNCTION PROPERTIES *
;* 0 Auto, 0 SOE *
;***************************************************************
||main||:
;* --------------------------------------------------------------------------*
ZERO &r14, 4 ; [ALU_PRU] |2|
JMP r3.w2 ; [ALU_PRU]
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: <unknown>: 0x90
Version: 0x1
Entry point address: 0x0
Start of program headers: 936 (bytes into file)
Start of section headers: 936 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 11
Section header string table index: 10
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .text PROGBITS 00000000 000034 000000 00 AX 0 0 1
[ 2] .text:main PROGBITS 00000000 000034 000008 00 AX 0 0 4
[ 3] __TI_ICODE PROGBITS 00000000 00003c 00020a 00 0 0 0
[ 4] __TI_build_attrib LOPROC+0x3 00000000 000246 000030 00 0 0 0
[ 5] .symtab SYMTAB 00000000 000278 000050 10 9 4 0
[ 6] .TI.symbol.alias LOPROC+0xf00000 00000000 0002c8 000009 08 0 0 0
[ 7] .TI.section.flags LOPROC+0xf00000 00000000 0002d1 00001a 00 0 0 0
[ 8] .TI.section.page LOPROC+0xf00000 00000000 0002eb 00001a 00 0 0 0
[ 9] .strtab STRTAB 00000000 000305 000021 01 S 0 0 0
[10] .shstrtab STRTAB 00000000 000326 000081 01 S 0 0 0
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
p (processor specific)
There are no section groups in this file.
readelf: Warning: possibly corrupt ELF header - it has a non-zero program header offset, but no program headers
There are no relocations in this file.
The decoding of unwind sections for machine type <unknown>: 0x90 is not currently supported.
Symbol table '.symtab' contains 5 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 FILE LOCAL HIDDEN ABS empty.asm
2: 00000000 0 SECTION LOCAL HIDDEN 1 .text
3: 00000000 0 SECTION LOCAL HIDDEN 2 .text:main
4: 00000000 0 FUNC GLOBAL HIDDEN 2 main
No version information found in this file.
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: <unknown>: 0x90
Version: 0x1
Entry point address: 0x4
Start of program headers: 6028 (bytes into file)
Start of section headers: 6124 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 3
Size of section headers: 40 (bytes)
Number of section headers: 28
Section header string table index: 27
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .bss NOBITS 00000000 000070 000000 00 WA 0 0 1
[ 2] .data NOBITS 00000000 000070 000000 00 WA 0 0 2
[ 3] .rodata NOBITS 00000000 000070 000000 00 A 0 0 1
[ 4] .farbss NOBITS 00000000 000000 000000 00 0 0 1
[ 5] .fardata NOBITS 00000000 000000 000000 00 0 0 1
[ 6] .rofardata NOBITS 00000000 000000 000000 00 0 0 1
[ 7] .sysmem NOBITS 00000000 000000 000000 00 0 0 1
[ 8] .stack NOBITS 00000004 000060 000100 00 WA 0 0 4
[ 9] .init_array NOBITS 00000000 000070 000000 00 WA 0 0 1
[10] .cinit NOBITS 00000000 000000 000000 00 0 0 1
[11] .args NOBITS 00000000 000000 000000 00 0 0 1
[12] .text PROGBITS 00000004 000034 00002c 00 AX 0 0 4
[13] .debug_info PROGBITS 00000000 000070 0005ae 00 0 0 1
[14] .debug_line PROGBITS 00000000 00061e 000103 00 0 0 1
[15] .debug_frame PROGBITS 00000000 000721 0003a1 00 0 0 1
[16] .debug_abbrev PROGBITS 00000000 000ac2 000152 00 0 0 1
[17] .debug_str PROGBITS 00000000 000c14 0000f4 00 0 0 1
[18] .debug_aranges PROGBITS 00000000 000d08 000060 00 0 0 1
[19] .debug_pubnames PROGBITS 00000000 000d68 00008f 00 0 0 1
[20] .debug_pubtypes PROGBITS 00000000 000df7 0000ed 00 0 0 1
[21] __TI_build_attrib LOPROC+0x3 00000000 000ee4 00002d 00 0 0 0
[22] .symtab SYMTAB 00000000 000f14 0004d0 10 26 77 0
[23] .TI.phattrs LOPROC+0xf00000 00000000 000060 000010 00 0 0 4
[24] .TI.section.flags LOPROC+0xf00000 00000000 0013e4 00001a 00 0 0 0
[25] .TI.section.page LOPROC+0xf00000 00000000 0013fe 000023 00 0 0 0
[26] .strtab STRTAB 00000000 001421 00023e 01 S 0 0 0
[27] .shstrtab STRTAB 00000000 00165f 00012a 01 S 0 0 0
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
p (processor specific)
There are no section groups in this file.
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x000034 0x00000004 0x00000004 0x0002c 0x0002c R E 0x4
LOAD 0x000060 0x00000004 0x00000004 0x00000 0x00100 RW 0x4
LOPROC+0 0x000060 0x00000000 0x00000000 0x00010 0x00000 R 0
Section to Segment mapping:
Segment Sections...
00 .text
01 .stack
02 .bss .data .rodata .farbss .fardata .rofardata .sysmem .init_array .cinit .args .TI.phattrs
There is no dynamic section in this file.
There are no relocations in this file.
The decoding of unwind sections for machine type <unknown>: 0x90 is not currently supported.
Symbol table '.symtab' contains 77 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 SECTION LOCAL DEFAULT 1 .bss
2: 00000000 0 SECTION LOCAL DEFAULT 2 .data
3: 00000000 0 SECTION LOCAL DEFAULT 3 .rodata
4: 00000000 0 SECTION LOCAL DEFAULT 4 .farbss
5: 00000000 0 SECTION LOCAL DEFAULT 5 .fardata
6: 00000000 0 SECTION LOCAL DEFAULT 6 .rofardata
7: 00000000 0 SECTION LOCAL DEFAULT 7 .sysmem
8: 00000004 0 SECTION LOCAL DEFAULT 8 .stack
9: 00000000 0 SECTION LOCAL DEFAULT 9 .init_array
10: 00000000 0 SECTION LOCAL DEFAULT 10 .cinit
11: 00000000 0 SECTION LOCAL DEFAULT 11 .args
12: 00000004 0 SECTION LOCAL DEFAULT 12 .text
13: 00000000 0 SECTION LOCAL DEFAULT 13 .debug_info
14: 00000000 0 SECTION LOCAL DEFAULT 14 .debug_line
15: 00000000 0 SECTION LOCAL DEFAULT 15 .debug_frame
16: 00000000 0 SECTION LOCAL DEFAULT 16 .debug_abbrev
17: 00000000 0 SECTION LOCAL DEFAULT 17 .debug_str
18: 00000000 0 SECTION LOCAL DEFAULT 18 .debug_aranges
19: 00000000 0 SECTION LOCAL DEFAULT 19 .debug_pubnames
20: 00000000 0 SECTION LOCAL DEFAULT 20 .debug_pubtypes
21: 00000000 0 FILE LOCAL HIDDEN ABS 08578LVQO4z
22: 00000028 0 SECTION LOCAL HIDDEN 12 [0].text:main
23: 00000143 0 SECTION LOCAL DEFAULT 16 .debug_abbrev
24: 00000000 0 FILE LOCAL HIDDEN ABS boot.asm
25: 00000001 0 NOTYPE LOCAL HIDDEN ABS __TI_default_c_int00
26: 00000004 0 SECTION LOCAL HIDDEN 8 .stack
27: 00000000 0 SECTION LOCAL HIDDEN 13 .debug_info
28: 000000ed 0 SECTION LOCAL HIDDEN 13 .debug_info
29: 00000000 0 SECTION LOCAL HIDDEN 14 .debug_line
30: 0000002a 0 SECTION LOCAL HIDDEN 14 .debug_line
31: 00000000 0 SECTION LOCAL HIDDEN 16 .debug_abbrev
32: 00000000 0 SECTION LOCAL HIDDEN 17 .debug_str
33: 00000029 0 SECTION LOCAL HIDDEN 16 .debug_abbrev
34: 00000000 0 SECTION LOCAL HIDDEN 19 .debug_pubnames
35: 00000000 0 SECTION LOCAL HIDDEN 20 .debug_pubtypes
36: 00000000 0 FILE LOCAL HIDDEN ABS boot_special.asm
37: 00000001 0 NOTYPE LOCAL HIDDEN ABS __TI_default_c_int00
38: 00000004 0 SECTION LOCAL HIDDEN 12 .text:_c_int00_noinit_noa
39: 00000171 0 SECTION LOCAL HIDDEN 13 .debug_info
40: 0000004a 0 SECTION LOCAL HIDDEN 14 .debug_line
41: 00000000 0 SECTION LOCAL HIDDEN 15 .debug_frame
42: 00000048 0 SECTION LOCAL HIDDEN 16 .debug_abbrev
43: 00000000 0 SECTION LOCAL HIDDEN 18 .debug_aranges
44: 0000001d 0 SECTION LOCAL HIDDEN 19 .debug_pubnames
45: 00000000 0 FILE LOCAL HIDDEN ABS exit.asm
46: 00000001 0 NOTYPE LOCAL HIDDEN ABS __TI_default_exit
47: 00000020 0 FUNC LOCAL HIDDEN 12 loader_exit
48: 0000001c 0 FUNC LOCAL HIDDEN 12 $C$L1
49: 00000020 0 SECTION LOCAL HIDDEN 12 .text:loader_exit
50: 00000018 0 SECTION LOCAL HIDDEN 12 .text:abort
51: 000002e4 0 SECTION LOCAL HIDDEN 13 .debug_info
52: 00000409 0 SECTION LOCAL HIDDEN 13 .debug_info
53: 00000091 0 SECTION LOCAL HIDDEN 14 .debug_line
54: 000000c8 0 SECTION LOCAL HIDDEN 14 .debug_line
55: 00000135 0 SECTION LOCAL HIDDEN 15 .debug_frame
56: 0000026b 0 SECTION LOCAL HIDDEN 15 .debug_frame
57: 0000009d 0 SECTION LOCAL HIDDEN 16 .debug_abbrev
58: 000000ee 0 SECTION LOCAL HIDDEN 16 .debug_abbrev
59: 00000020 0 SECTION LOCAL HIDDEN 18 .debug_aranges
60: 00000040 0 SECTION LOCAL HIDDEN 18 .debug_aranges
61: 00000051 0 SECTION LOCAL HIDDEN 19 .debug_pubnames
62: 00000073 0 SECTION LOCAL HIDDEN 19 .debug_pubnames
63: 00000000 0 FILE LOCAL HIDDEN ABS args_main.asm
64: 00000001 0 NOTYPE LOCAL HIDDEN ABS __TI_default_args_main
65: 00000000 0 FILE LOCAL HIDDEN ABS autoinit.asm
66: 00000001 0 NOTYPE LOCAL HIDDEN ABS __TI_default_auto_init
67: ffffffff 0 NOTYPE LOCAL HIDDEN ABS binit
68: ffffffff 0 NOTYPE LOCAL HIDDEN ABS __binit__
69: 00000100 0 NOTYPE LOCAL HIDDEN ABS __TI_STACK_SIZE
70: 00000104 0 NOTYPE LOCAL HIDDEN 8 __TI_STACK_END
71: ffffffff 0 NOTYPE LOCAL HIDDEN ABS __c_args__
72: 00000028 0 FUNC LOCAL HIDDEN 12 main
73: 00000004 4 OBJECT LOCAL HIDDEN 8 _stack
74: 00000004 0 FUNC LOCAL HIDDEN 12 _c_int00_noinit_noargs_no
75: 00000020 0 FUNC LOCAL HIDDEN 12 C$$EXIT
76: 00000018 0 FUNC LOCAL HIDDEN 12 abort
No version information found in this file.
Disassembly of empty.out:
TEXT Section .text (Little Endian), 0x2C bytes at 0x4
00000004 _c_int00_noinit_noargs_noexit:
00000004 240000c0 LDI R0.w2, 0
00000008 24010480 LDI R0.w0, 260
0000000c 0504e0e2 SUB R2, R0, 4
00000010 23000ac3 JAL R3.w2, main
00000014 230006c3 JAL R3.w2, abort
00000018 abort:
00000018 230008c3 JAL R3.w2, loader_exit
0000001c $C$L1:
0000001c 21000700 JMP $C$L1
00000020 C$$EXIT:
00000020 loader_exit:
00000020 10000000 AND R0.b0, R0.b0, R0.b0
00000024 20c30000 JMP R3.w2
00000028 main:
00000028 2eff818e XIN 255, &R14.b0, 4
0000002c 20c30000 JMP R3.w2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment