1) extract /opt/ti/ccsv5/tools/compiler/tms470/lib/rtssrc.zip
2) copy boot.asm into your Code Composer Studio project
3) apply following patch on boot.asm
--- a/boot.asm 2011-10-20 05:36:52.000000000 +0200
+++ b/boot.asm 2011-11-17 23:22:02.339068102 +0100
@@ -262,11 +262,11 @@
.endif
;*------------------------------------------------------
- ;* SET TO USER MODE
+ ;* SET TO PRIV MODE
;*------------------------------------------------------
MRS r0, cpsr
BIC r0, r0, #0x1F ; CLEAR MODES
- ORR r0, r0, #0x10 ; SET USER MODE
+ ORR r0, r0, #0x1F ; SET PRIV MODE
MSR cpsr_cf, r0
;*------------------------------------------------------
4) When debugging verify that Registers - Core Registers - CPSR - M is set to 11111
Make sure that you have netcat and tar available on both of your machines, Netcat and tar should be part of default Ubuntu installation.
Execute following commands on receiving computer:
cd /directory/to/receive/files nc -l 8888 | tar -xv
After that execute following on sending computer:
cd /directory/with/files/to/send tar -cv * | nc 10.10.10.10 8888
You can add -z to tar parameters to gzip files, which may be useful for transfers over Wi-Fi.
1) Save your transaction history from your Internet banking as showed on the following picture:

2) Run following script on saved file:
#!/usr/bin/perl
use utf8;
if ($#ARGV != 1 ) {
print "usage: csob.pl inputfile outputfile\n";
exit;
}
open INPUT, "<:encoding(cp1250)", $ARGV[0];
open OUTPUT, ">:encoding(utf8)", $ARGV[1];
print OUTPUT "\n";
while(<INPUT>) {
if (/:/) {
($key, $value) = split(/:\s*/, $_, 2);
$value =~ s/\s*\n$//;
if ($key eq "datum zaúčtování") {
($day, $month, $year) = split (/\./, $value);
$value = "$year/$month/$day";
}
$values{$key} = $value;
} else {
if ($values{"částka"}) {
print OUTPUT ";"; #1="transactionId"
print OUTPUT "0300;"; #2="localBankCode"
print OUTPUT ";"; #3="localAccountNumber"
print OUTPUT ";"; #4="remoteBankCode"
print OUTPUT ";"; #5="remoteAccountNumber"
print OUTPUT '"'.$values{"datum zaúčtování"}.'";'; #6="date"
print OUTPUT '"'.$values{"datum zaúčtování"}.'";'; #7="valutadate"
print OUTPUT '"'.$values{"částka"}.'";'; #8="value/value"
print OUTPUT '"'.$values{"měna"}.'";'; #9="value/currency"
print OUTPUT ";"; #10="localName"
print OUTPUT '"'.$values{"název protiúčtu"}.'";'; #11="remoteName[0]"
print OUTPUT ";"; #12="remoteName[1]"
print OUTPUT '"'.$values{"označení operace"}.'";'; #13="purpose[0]"
print OUTPUT '"'.$values{"poznámka"}.'";'; #14="purpose[1]"
print OUTPUT '"'.$values{"konstantní symbol"}.'";'; #15="purpose[2]"
print OUTPUT '"'.$values{"variabilní symbol"}.'";'; #16="purpose[3]"
print OUTPUT '"'.$values{"specifický symbol"}.'";'; #17="purpose[4]"
print OUTPUT ";"; #18="purpose[5]"
print OUTPUT ";"; #19="purpose[6]"
print OUTPUT ";"; #20="purpose[7]"
print OUTPUT ";"; #21="purpose[8]"
print OUTPUT ";"; #22="purpose[9]"
print OUTPUT ";"; #23="purpose[10]"
print OUTPUT ";"; #24="purpose[11]"
print OUTPUT ";"; #25="category[0]"
print OUTPUT ";"; #26="category[1]"
print OUTPUT ";"; #27="category[2]"
print OUTPUT ";"; #28="category[3]"
print OUTPUT ";"; #29="category[4]"
print OUTPUT ";"; #30="category[5]"
print OUTPUT ";"; #31="category[6]"
print OUTPUT ""; #32="category[7]"
print OUTPUT "\n";
}
%values = ();
}
}
close INPUT;
close OUTPUT;
3) Import newly created file into KMyMoney using default CSV importer.
Suppose you have following main.c and it works properly
#include <stdio.h> // prototype declarations for I/O functions
#include "uart.h"
int main (void)
{
vUartInit();
printf ("Hello World\n");
for (;;);
}
and you want to make minimalistic FreeRTOS example on your processor.
You will need to do following.
/* Standard includes */
#include <stdio.h> // prototype declarations for I/O functions
/* Driver includes */
#include "uart.h"
/* Scheduler includes */
#include "FreeRTOS.h"
#include "task.h"
void prvTaskA (void* pvParameters)
{
(void) pvParameters; // Just to stop compiler warnings.
for (;;) {
vTaskDelay(500);
printf("Task A\n");
vTaskDelay(500);
}
}
void prvTaskB (void* pvParameters)
{
(void) pvParameters; // Just to stop compiler warnings.
for (;;) {
printf("Task B\n");
vTaskDelay(1000);
}
}
int main (void)
{
vUartInit();
xTaskCreate( prvTaskA, ( signed char * ) "TaskA", configMINIMAL_STACK_SIZE, NULL,
tskIDLE_PRIORITY, ( xTaskHandle * ) NULL );
xTaskCreate( prvTaskB, ( signed char * ) "TaskB", configMINIMAL_STACK_SIZE, NULL,
tskIDLE_PRIORITY, ( xTaskHandle * ) NULL );
vTaskStartScheduler();
//should never get here
printf("ERORR: vTaskStartScheduler returned!");
for (;;);
}
#!/usr/bin/python # Requirements: # sudo aptitude install python-bluetooth # Information Sources: # http://code.google.com/p/pybluez/source/browse/trunk/examples/simple/rfc... # http://people.csail.mit.edu/albert/bluez-intro/x290.html#py-rfcomm-clien... import bluetooth import sys import threading uuid = "fa87c0d0-afac-11de-8a39-0800200c9a66" addr = None if len(sys.argv) < 2: print "No device specified. Searching all nearby bluetooth devices for" print "the BluetoothChat service" else: addr = sys.argv[1] print "Searching for BluetoothChat on %s" % addr # search for the BluetoothChat service service_matches = bluetooth.find_service( uuid = uuid, address = addr ) if len(service_matches) == 0: print "couldn't find the BluetoothChat service =(" sys.exit(0) first_match = service_matches[0] port = first_match["port"] name = first_match["name"] host = first_match["host"] print "connecting to \"%s\" on %s" % (name, host) # Create the client socket sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM ) sock.connect((host, port)) class receiverThread(threading.Thread): def __init__ (self,sock): threading.Thread.__init__(self) self.sock = sock def run(self): while True: data = self.sock.recv(1024) if len(data) == 0: break print "received [%s]" % data receiver = receiverThread(sock) receiver.setDaemon(True) receiver.start() print "connected - type stuff:" while True: data = raw_input() if len(data) == 0: break sock.send(data) print "sent [%s]" % data sock.close()
#!/usr/bin/python # Requirements: # sudo aptitude install python-bluetooth # Information Sources: # http://code.google.com/p/pybluez/source/browse/trunk/examples/simple/rfc... # http://people.csail.mit.edu/albert/bluez-intro/x290.html#py-rfcomm-serve... import bluetooth import threading name = "BluetoothChat" uuid = "fa87c0d0-afac-11de-8a39-0800200c9a66" server_sock = bluetooth.BluetoothSocket( bluetooth.RFCOMM ) server_sock.bind(("", bluetooth.PORT_ANY)) server_sock.listen(1) port = server_sock.getsockname()[1] bluetooth.advertise_service( server_sock, name, uuid ) print "Waiting for connection on RFCOMM channel %d" % port class echoThread(threading.Thread): def __init__ (self,sock,client_info): threading.Thread.__init__(self) self.sock = sock self.client_info = client_info def run(self): try: while True: data = self.sock.recv(1024) if len(data) == 0: break print self.client_info, ": received [%s]" % data self.sock.send(data) print self.client_info, ": sent [%s]" % data except IOError: pass self.sock.close() print self.client_info, ": disconnected" while True: client_sock, client_info = server_sock.accept() print client_info, ": connection accepted" echo = echoThread(client_sock, client_info) echo.setDaemon(True) echo.start() server_sock.close() print "all done"
List local bluetooth devices
# hcitool dev
Scan for bluetooth devices around
# hcitool scan
Bluetooth ping
# l2ping AA:BB:CC:DD:EE:FF
Browse services provided by this computer
# sdptool browse local
Browse services provided by another device
# sdptool browse --raw AA:BB:CC:DD:EE:FF
Connect /dev/rfcomm0 to another device channel 3
# rfcomm connet 0 AA:BB:CC:DD:EE:FF 3
If you ever experience following error "Parse error: syntax error, unexpected T_STRING, expecting ')' in /proto/SxM_webui/ctcs/ctcs.db on line 7", just login to mybook world via ssh, open /proto/SxM_webui/ctcs/ctcs.db and make it valid PHP script. You will probably need to escape " with \" in some file names. You may need to reboot MyBook afterwards.
Udev rule for changing selected USB configuration descriptor:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="12*", ATTRS{bConfigurationValue}!="2", \
ATTR{bConfigurationValue}="2"
Udev rule for creating link and setting permissions for easier access from own application:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="12*", KERNEL=="hidraw*", \
MODE="0666", SYMLINK+="myDeviceLink"
remember to execute
$ sudo service udev restart
Ubuntu 10.04 still ships with wmii-3.6. New extensions, which are implemented in the latest wmii, are required to run gnome-panel.
I have prepared the following packages for you:
If it does not fit you, please use the following script to build latest wmii from source code.
#!/bin/bash WORKDIR="/tmp/wmii" URL="http://dl.suckless.org/wmii/wmii+ixp-3.9b1.tbz" FILE=wmii+ixp-3.9b1.tbz DIR=wmii+ixp-3.9b1 # prepare working directory rm -rf $WORKDIR mkdir -p $WORKDIR cd $WORKDIR # install necessary dependencies - sudo make deb-dep miss some dependencies sudo aptitude install build-essential debhelper libxext-dev x11proto-xext-dev \ libx11-dev libxrandr-dev libxinerama-dev fakeroot quilt gcc make dpkg-dev \ libixp libxft-dev mercurial txt2tags hg clone http://hg.suckless.org/wmii cd wmii dpkg-buildpackage -rfakeroot -uc -us -b
You can found working package in /tmp/wmii and install it using following command
$ sudo dpkg -i wmii-hg_hg2550_i386.deb
Gnome's registry also needs a little bit of tweaking in order for it to play nicely with wmii. Next fire up the gconf-editor:
$ gconf-editor
And unmark the checkbox at apps>nautilus>preferences and untick show_desktop
Next go to desktop>gnome>background and untick draw_background + empty picture_filename.
This step is the step that was the most difficult to find. Simply run this command:
$ echo export WINDOW_MANAGER=`which wmii` >> ~/.gnomerc
This'll create a .gnomerc which will then run wmii.
cp -r /etc/X11/wmii-hg/ ~/.wmii-hg/
In order for "MOD-a" -> quit to work properly, you need to modify ~/.wmii-hg/wmiirc in the following way
$ gnome-control-center
Click on "Appearance" and select your theme of choice - the first one (custom) works fine.
Above steps has been based on info from Ryan Kraay's page. He provides even more tips, which I did not found necessary myself.
rd@radekdostal.com
+420 7777 939 66
skype: radekdostal
www.mimo-domov.cz - Czech and Slovak people abroad