Skip to content

Instantly share code, notes, and snippets.

View deepakkarki's full-sized avatar
🎯
Focusing

Deepak Karki deepakkarki

🎯
Focusing
View GitHub Profile
/****************************************************************************/
/* LNK.CMD */
/* */
/* Usage: clpru <src files...> -z -o <out file> -m <map file> lnk.cmd */
/* */
/* Description: This file is a sample command file that can be used */
/* for linking programs built with the PRU C */
/* Compiler. Use it as a guideline; you may want to change */
/* the allocation scheme according to the size of your */
/* program and the memory layout of your target system. */
#ifndef PRU_DEFS_H
#define PRU_DEFS_H
volatile register unsigned int __R31;
volatile register unsigned int __R30;
__far int C0 __attribute((cregister("MEM", far)));
__far int C4 __attribute((cregister("MEM", far)));
/*
# 1 "test.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "test.c"
# 1 "/usr/include/stdio.h" 1 3 4
# 28 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 324 "/usr/include/features.h" 3 4
# 1 "/usr/include/i386-linux-gnu/bits/predefs.h" 1 3 4
# 325 "/usr/include/features.h" 2 3 4
.file "test.c"
.section .rodata
.LC0:
.string "%d"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
ELF\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00<\00\00\00\00\00\004\00\00\00\00\00(\00
\00
\00U\89\E5\83\E4\F0\83\EC \C7D$\00\00\00\C7D$\00\00\00\8BD$\8BT$ЉD$\B8\00\00\00\00\8BT$\89T$\89$\E8\FC\FF\FF\FF\C9\C3\00\00%d\00\00GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3\00\00\00\00\00\00\00\00\00\00zR\00| \88\00\00\00\00\00\00\00\00\00\00\00\00>\00\00\00\00A\85B
z\C5 \00\00\00.symtab\00.strtab\00.shstrtab\00.rel.text\00.data\00.bss\00.rodata\00.comment\00.note.GNU-stack\00.rel.eh_frame\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\004\00\00\00>\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00%\00\00\00\00\00\00\00\00\00\00\00\00\00t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\00\00\00\00\00\00\00\00\
ELF\00\00\00\00\00\00\00\00\00\00\00\00\00\000\834\00\00\00<\00\00\00\00\00\004\00 \00 \00(\00\00\00\00\00\004\00\00\004\804\80 \00\00 \00\00\00\00\00\00\00\00\00\00\00T\00\00T\81T\81\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80\00\80\FC\00\00\FC\00\00\00\00\00\00\00\00\00\00\00\00\00\9F\9F\00\00\00\00\00\00\00\00\00\00\00\00\00\00(\00\00(\9F(\9F\C8\00\00\00\C8\00\00\00\00\00\00\00\00\00\00\00\00h\00\00h\81h\81D\00\00\00D\00\00\00\00\00\00\00\00\00P\E5td\00\00\85\854\00\00\004\00\00\00\00\00\00\00\00\00Q\E5td\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00R\E5td\00\00\9F\9F\EC\00\00\00\EC\00\00\00\00\00\00\00\00\00/lib/ld-linux.so.2\00\00\00\00\00\00\00\00\00\00\00GNU\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00GNU\00\B6\B4\ADV\B2f\E3qv0\87V]?\00\00\00\00\00\00\00\00\00\00\00\00\00 \00 \00\00\00\00\00\00\00\ADK\E3\C0\00\00\00\00
___________C Code - user space______________
int *src = (int *)mmap (NULL, 4096, PROT_READ, MAP_SHARED, m_fd, 0);
___________Kernel space driver_______________
/*
*
* BIN FILE SYSFS - for mmap'ing. share mem b/w userspace, kernel and PRU
*
@deepakkarki
deepakkarki / pru_api.py
Created June 10, 2014 17:19
1st iteration of the PRU Speak API
import pru_speak
botspeak_code = \
''' SET DIO[0] , 1
WAIT 1
SET DIO[0], 0
WAIT 1
GOTO 0'''
pru_speak.load(botspeak_code)

SET

CMD   A     VALA     B     VALB  
0000 0000 0000 0000 0000 0000 0000 0000
\  / \  / \       / \  / \       / \  / 
SET  DIO      5     VAR      4   ignored
  • A,B are one of DIO, AO, PWM, TMR, user variable, value
@deepakkarki
deepakkarki / BB-BONE-PRU-07
Created July 15, 2014 02:08
DTS for PRU Speak
/*
* Copyright (C) 2013 Pantelis Antoniou <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;
/plugin/;