/programy/Atmel_C/Blik/Makefile |
---|
0,0 → 1,62 |
# makefile, written by guido socher |
MCU=atmega8 |
#MCU=at90s4433 |
CC=avr-gcc |
OBJCOPY=avr-objcopy |
# optimize for size: |
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues |
#------------------- |
all: avrm8ledtest.hex |
#------------------- |
help: |
@echo "Usage: make all|load|load_pre|rdfuses|wrfuse1mhz|wrfuse4mhz|wrfusecrystal" |
@echo "Warning: you will not be able to undo wrfusecrystal unless you connect an" |
@echo " external crystal! uC is dead after wrfusecrystal if you do not" |
@echo " have an external crystal." |
#------------------- |
avrm8ledtest.hex : avrm8ledtest.out |
$(OBJCOPY) -R .eeprom -O ihex avrm8ledtest.out avrm8ledtest.hex |
avrm8ledtest.out : avrm8ledtest.o |
$(CC) $(CFLAGS) -o avrm8ledtest.out -Wl,-Map,avrm8ledtest.map avrm8ledtest.o |
avrm8ledtest.o : avrm8ledtest.c |
$(CC) $(CFLAGS) -Os -c avrm8ledtest.c |
#------------------ |
load: avrm8ledtest.hex |
./prg_load_uc avrm8ledtest.hex |
# here is a pre-compiled version in case you have trouble with |
# your development environment |
load_pre: avrm8ledtest_pre.hex |
./prg_load_uc avrm8ledtest.hex |
# |
loaduisp: avrm8ledtest.hex |
./prg_load_uc -u avrm8ledtest.hex |
# here is a pre-compiled version in case you have trouble with |
# your development environment |
load_preuisp: avrm8ledtest_pre.hex |
./prg_load_uc -u avrm8ledtest.hex |
#------------------- |
# fuse byte settings: |
# Atmel AVR ATmega8 |
# Fuse Low Byte = 0xe1 (1MHz internal), 0xe3 (4MHz internal), 0xe4 (8MHz internal) |
# Fuse High Byte = 0xd9 |
# Factory default is 0xe1 for low byte and 0xd9 for high byte |
# Check this with make rdfuses |
rdfuses: |
./prg_fusebit_uc -r |
# use internal RC oscillator 1 Mhz |
wrfuse1mhz: |
./prg_fusebit_uc -w 1 |
# use internal RC oscillator 4 Mhz |
wrfuse4mhz: |
./prg_fusebit_uc -w 4 |
# use external 3-8 Mhz crystal |
# Warning: you can not reset this to intenal unless you connect a crystal!! |
wrfusecrystal: |
@echo "Warning: The external crystal setting can not be changed back without a working crystal" |
@echo " You have 3 seconds to abort this with crtl-c" |
@sleep 3 |
./prg_fusebit_uc -w 0 |
#------------------- |
clean: |
rm -f *.o *.map *.out *t.hex |
#------------------- |
/programy/Atmel_C/Blik/README.txt |
---|
0,0 → 1,63 |
AVR GCC development environment test software. |
See the following article for details: |
http://main.linuxfocus.org/English/November2004/article352.shtml |
To compile type the command: |
make |
Note: You will get some warnings "#warning "This header file is obsolete." |
during compilation with avr-libc-1.4.X. This is because this code will |
also work with avr-libc-1.2.X |
Alternative 1: Programming with uisp (dapa programmer): |
------------------------------------------------------- |
Make sure that you have loaded the following modules in the kernel (for 2.4.x) |
before you use the uisp programmer: |
> /sbin/lsmod |
Module Size Used by |
parport_pc 17808 0 |
ppdev 5312 0 (unused) |
parport 25856 0 [parport_pc ppdev] |
To compile and load use: |
make loaduisp |
Alternative 2: Programming with avrusb500 (high speed usb programmer from tuxgraphics): |
--------------------------------------------------------------------------------------- |
Make sure that you have loaded the following modules in the kernel |
before you use the uisp programmer: |
> /sbin/lsmod |
Module Size Used by |
ftdi_sio 20568 0 |
usbcore 57792 1 [ftdi_sio usbserial] |
To compile and load use: |
make load |
Files: |
------ |
avrm8ledtest.c # the c source code for ATmega8 |
avrm8ledtest_pre.hex # pre-compiled loadable object in case you have |
# trouble to compile the software |
Makefile # Makefile |
README.txt # this file |
circuit.gif # schematic as gif image |
------------------------------------------- |
History: |
version 0.1: 2004-10-01, first Version |
version 0.2: 2004-12-30, corrected fault in delay_ms function |
version 0.3: 2005-10-04, new modular programming with the scripts prg_load_uc |
and prg_fusebit_uc for easy transition to the new |
avrusb500 programmer |
version 0.4: 2006-03-02, compiler independent delay loop. The old delay_ms |
would behave totally different with the new gcc-4 |
version. |
version 0.5: 2006-03-10, Fault in delay_ms corrected |
------------------------------------------- |
Copyright: GPL |
Written by guido socher <guido at tuxgraphics.org> |
------------------------------------------- |
/programy/Atmel_C/Blik/avrm8ledtest.c |
---|
0,0 → 1,76 |
/********************************************* |
* vim: set sw=8 ts=8 si : |
* Author: Guido Socher, Copyright: GPL |
* This program is to test the led connected to |
* PC5. |
* See http://linuxfocus.org/English/November2004/ |
* for details. |
* Chip type : ATMEGA8 |
* Clock frequency : Internal clock 1 Mhz (factory default) |
*********************************************/ |
#include <avr/io.h> |
#include <inttypes.h> |
#define F_CPU 1000000UL // 1 MHz |
#include <avr/delay.h> |
/* compatibilty macros for old style */ |
#ifndef cbi |
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) |
#endif |
#ifndef sbi |
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) |
#endif |
void delay_ms(unsigned int ms) |
/* delay for a minimum of <ms> */ |
{ |
// we use a calibrated macro. This is more |
// accurate and not so much compiler dependent |
// as self made code. |
while(ms){ |
_delay_ms(0.96); |
ms--; |
} |
} |
/* new style */ |
int main(void) |
{ |
/* INITIALIZE */ |
/* enable PC5 as output */ |
DDRC|= (1<<DDC5); |
/* PC5 is 5 (see file include/avr/iom8.h) and 1<<PC5 is 00100000 |
* This can also be written as _BV(PC5)*/ |
while (1) { |
/* led on, pin=0 */ |
PORTC &= ~(1<<PC5); |
delay_ms(500); |
/* set output to 5V, LED off */ |
PORTC|= (1<<PC5); |
delay_ms(500); |
} |
return(0); |
} |
// // old style now depricated: |
// int main(void) |
// { |
// // enable PC5 as output |
// sbi(DDRC,PC5); |
// while (1) { |
// // led on, pin=0 |
// cbi(PORTC,PC5); |
// delay_ms(500); |
// // set output to 5V, LED off |
// sbi(PORTC,PC5); |
// delay_ms(500); |
// } |
// return(0); |
// } |
// // end of old style |
/programy/Atmel_C/Blik/avrm8ledtest.hex |
---|
0,0 → 1,11 |
:1000000012C02BC02AC029C028C027C026C025C0C6 |
:1000100024C023C022C021C020C01FC01EC01DC0DC |
:100020001CC01BC01AC011241FBECFE5D4E0DEBF28 |
:10003000CDBF10E0A0E6B0E0E2E9F0E002C005903C |
:100040000D92A036B107D9F710E0A0E6B0E001C0EC |
:100050001D92A036B107E1F70EC0D2CF9C01E0EFB0 |
:10006000F0E005C0CF010197F1F721503040211594 |
:100070003105C1F70895CFE5D4E0DEBFCDBFA59A25 |
:10008000AD9884EF91E0EADFAD9A84EF91E0E6DF8E |
:02009000F7CFA8 |
:00000001FF |
/programy/Atmel_C/Blik/avrm8ledtest.map |
---|
0,0 → 1,274 |
Archive member included because of file (symbol) |
/usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_copy_data.o) |
avrm8ledtest.o (__do_copy_data) |
/usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_clear_bss.o) |
avrm8ledtest.o (__do_clear_bss) |
Memory Configuration |
Name Origin Length Attributes |
text 0x00000000 0x00002000 xr |
data 0x00800060 0x0000ffa0 rw !x |
eeprom 0x00810000 0x00010000 rw !x |
*default* 0x00000000 0xffffffff |
Linker script and memory map |
LOAD /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o |
LOAD avrm8ledtest.o |
LOAD /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a |
LOAD /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a |
LOAD /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a |
.hash |
*(.hash) |
.dynsym |
*(.dynsym) |
.dynstr |
*(.dynstr) |
.gnu.version |
*(.gnu.version) |
.gnu.version_d |
*(.gnu.version_d) |
.gnu.version_r |
*(.gnu.version_r) |
.rel.init |
*(.rel.init) |
.rela.init |
*(.rela.init) |
.rel.text |
*(.rel.text) |
*(.rel.text.*) |
*(.rel.gnu.linkonce.t*) |
.rela.text |
*(.rela.text) |
*(.rela.text.*) |
*(.rela.gnu.linkonce.t*) |
.rel.fini |
*(.rel.fini) |
.rela.fini |
*(.rela.fini) |
.rel.rodata |
*(.rel.rodata) |
*(.rel.rodata.*) |
*(.rel.gnu.linkonce.r*) |
.rela.rodata |
*(.rela.rodata) |
*(.rela.rodata.*) |
*(.rela.gnu.linkonce.r*) |
.rel.data |
*(.rel.data) |
*(.rel.data.*) |
*(.rel.gnu.linkonce.d*) |
.rela.data |
*(.rela.data) |
*(.rela.data.*) |
*(.rela.gnu.linkonce.d*) |
.rel.ctors |
*(.rel.ctors) |
.rela.ctors |
*(.rela.ctors) |
.rel.dtors |
*(.rel.dtors) |
.rela.dtors |
*(.rela.dtors) |
.rel.got |
*(.rel.got) |
.rela.got |
*(.rela.got) |
.rel.bss |
*(.rel.bss) |
.rela.bss |
*(.rela.bss) |
.rel.plt |
*(.rel.plt) |
.rela.plt |
*(.rela.plt) |
.text 0x00000000 0x92 |
*(.vectors) |
.vectors 0x00000000 0x26 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o |
0x00000000 __vectors |
0x00000000 __vector_default |
0x00000026 __ctors_start = . |
*(.ctors) |
0x00000026 __ctors_end = . |
0x00000026 __dtors_start = . |
*(.dtors) |
0x00000026 __dtors_end = . |
*(.progmem.gcc*) |
*(.progmem*) |
0x00000026 . = ALIGN (0x2) |
*(.init0) |
*(.init1) |
*(.init2) |
.init2 0x00000026 0xc /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o |
*(.init3) |
*(.init4) |
.init4 0x00000032 0x16 /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_copy_data.o) |
0x00000032 __do_copy_data |
.init4 0x00000048 0x10 /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_clear_bss.o) |
0x00000048 __do_clear_bss |
*(.init5) |
*(.init6) |
*(.init7) |
*(.init8) |
*(.init9) |
.init9 0x00000058 0x2 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o |
*(.text) |
.text 0x0000005a 0x2 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o |
0x0000005a __vector_1 |
0x0000005a __vector_12 |
0x0000005a __bad_interrupt |
0x0000005a __vector_6 |
0x0000005a __vector_3 |
0x0000005a __vector_11 |
0x0000005a __vector_13 |
0x0000005a __vector_17 |
0x0000005a __vector_7 |
0x0000005a __vector_5 |
0x0000005a __vector_4 |
0x0000005a __vector_9 |
0x0000005a __vector_2 |
0x0000005a __vector_15 |
0x0000005a __vector_8 |
0x0000005a __vector_14 |
0x0000005a __vector_10 |
0x0000005a __vector_16 |
0x0000005a __vector_18 |
.text 0x0000005c 0x36 avrm8ledtest.o |
0x00000076 main |
0x0000005c delay_ms |
0x00000092 . = ALIGN (0x2) |
*(.text.*) |
0x00000092 . = ALIGN (0x2) |
*(.fini9) |
*(.fini8) |
*(.fini7) |
*(.fini6) |
*(.fini5) |
*(.fini4) |
*(.fini3) |
*(.fini2) |
*(.fini1) |
*(.fini0) |
0x00000092 _etext = . |
.data 0x00800060 0x0 load address 0x00000092 |
0x00800060 PROVIDE (__data_start, .) |
*(.data) |
*(.gnu.linkonce.d*) |
0x00800060 . = ALIGN (0x2) |
0x00800060 _edata = . |
0x00800060 PROVIDE (__data_end, .) |
.bss 0x00800060 0x0 |
0x00800060 PROVIDE (__bss_start, .) |
*(.bss) |
*(COMMON) |
0x00800060 PROVIDE (__bss_end, .) |
0x00000092 __data_load_start = LOADADDR (.data) |
0x00000092 __data_load_end = (__data_load_start + SIZEOF (.data)) |
.noinit 0x00800060 0x0 |
0x00800060 PROVIDE (__noinit_start, .) |
*(.noinit*) |
0x00800060 PROVIDE (__noinit_end, .) |
0x00800060 _end = . |
0x00800060 PROVIDE (__heap_start, .) |
.eeprom 0x00810000 0x0 |
*(.eeprom*) |
0x00810000 __eeprom_end = . |
.stab 0x00000000 0x738 |
*(.stab) |
.stab 0x00000000 0x36c /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o |
.stab 0x0000036c 0x3cc avrm8ledtest.o |
0x3d8 (size before relaxing) |
.stabstr 0x00000000 0x763 |
*(.stabstr) |
.stabstr 0x00000000 0x763 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o |
.stab.excl |
*(.stab.excl) |
.stab.exclstr |
*(.stab.exclstr) |
.stab.index |
*(.stab.index) |
.stab.indexstr |
*(.stab.indexstr) |
.comment |
*(.comment) |
.debug |
*(.debug) |
.line |
*(.line) |
.debug_srcinfo |
*(.debug_srcinfo) |
.debug_sfnames |
*(.debug_sfnames) |
.debug_aranges |
*(.debug_aranges) |
.debug_pubnames |
*(.debug_pubnames) |
.debug_info |
*(.debug_info) |
*(.gnu.linkonce.wi.*) |
.debug_abbrev |
*(.debug_abbrev) |
.debug_line |
*(.debug_line) |
.debug_frame |
*(.debug_frame) |
.debug_str |
*(.debug_str) |
.debug_loc |
*(.debug_loc) |
.debug_macinfo |
*(.debug_macinfo) |
OUTPUT(avrm8ledtest.out elf32-avr) |
/programy/Atmel_C/Blik/avrm8ledtest.out |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/Atmel_C/Blik/avrm8ledtest_pre.hex |
---|
0,0 → 1,11 |
:1000000012C02BC02AC029C028C027C026C025C0C6 |
:1000100024C023C022C021C020C01FC01EC01DC0DC |
:100020001CC01BC01AC011241FBECFE5D4E0DEBF28 |
:10003000CDBF10E0A0E6B0E0E6E9F0E002C0059038 |
:100040000D92A036B107D9F710E0A0E6B0E001C0EC |
:100050001D92A036B107E1F710C0D2CFAC0120E06D |
:1000600030E0E0EFF0E005C0CF010197F1F72F5F3E |
:100070003F4F24173507C1F70895CFE5D4E0DEBF21 |
:10008000CDBFA59AAD9884EF91E0E8DFAD9A84EFFB |
:0600900091E0E4DFF7CF70 |
:00000001FF |
/programy/Atmel_C/Blik/prg_fusebit_uc |
---|
0,0 → 1,97 |
#!/bin/sh |
prg="adude" |
# |
help() |
{ |
echo "prg_fusebit_uc -- read and write fuse bits of the atmega8" |
echo "" |
echo "Usage: prg_fusebit_uc [-hu] -r|-w Freq" |
echo "" |
echo "OPTIONS: -h this help" |
echo " -r read fuse bytes" |
echo " -u use uisp instead of avrdude" |
echo " avrdude can automatically detect dapa or avrusb500." |
echo " uisp can only be used with the parallel port dapa." |
echo " -w write fuse bytes such that a given Freq is used" |
echo " a frequency of 0 means external crystal. Possible" |
echo " values are 0,1,2,4,8" |
echo "" |
echo "EXAMPLE: program the fuses to 4MHz internal" |
echo " prg_fusebit_uc -w 4" |
echo "" |
echo "Warning: you can not undo the setting \"external crystal\" unless" |
echo " you have a crystal that works." |
echo "This script can be easily adapted to different programmer types" |
exit 0 |
} |
while [ -n "$1" ]; do |
case $1 in |
-h) help;shift 1;; |
-u) prg="uisp";shift 1;; |
-r) opt_r="1";shift 1;; |
-w) opt_w="1";freq="$2";shift 2;; |
-*) echo "error: no such option $1. -h for help";exit 1;; |
*) break;; |
esac |
done |
if [ -z "$opt_r" -a -z "$opt_w" ];then |
# one of those options is mandatory |
help |
fi |
hf=0xd9 |
if [ "$opt_w" = "1" ]; then |
case $freq in |
0) lf=0xee;echo "Make sure you have a crystal otherwise you can not change this!";sleep 2;; |
1) lf=0xe1;; |
2) lf=0xe2;; |
4) lf=0xe3;; |
8) lf=0xe4;; |
*) echo "error: no such frequency, -h for help";exit 1;; |
esac |
fi |
if [ "$prg" = "uisp" ]; then |
if [ "$opt_r" = "1" ];then |
set -x |
uisp -dlpt=/dev/parport0 -dprog=dapa --rd_fuses |
set +x |
echo "Explanation: Fuse Low Byte: 0xe1 (1MHz intern), 0xe3 (4MHz intern), " |
echo " 0xe4 (8MHz intern)" |
echo " Fuse High Byte should be 0xd9" |
exit 0 |
fi |
if [ "$opt_w" = "1" ]; then |
set -x |
uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_l=$lf |
uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_h=$hf |
set +x |
exit 0 |
fi |
fi |
if [ "$prg" = "adude" ]; then |
if grep "Vendor=0403 ProdID=6001" /proc/bus/usb/devices > /dev/null ; then |
prg="avrusb500" |
else |
prg="dapa" |
fi |
if [ "$opt_r" = "1" ];then |
set -x |
avrdude -p m8 -c $prg -v -q |
set +x |
echo "Explanation: Fuse Low Byte: 0xe1 (1MHz intern), 0xe3 (4MHz intern), " |
echo " 0xe4 (8MHz intern)" |
echo " Fuse High Byte should be 0xd9" |
exit 0 |
fi |
if [ "$opt_w" = "1" ]; then |
set -x |
avrdude -p m8 -c $prg -u -v -U lfuse:w:$lf:m |
avrdude -p m8 -c $prg -u -v -U hfuse:w:$hf:m |
set +x |
exit 0 |
fi |
fi |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/programy/Atmel_C/Blik/prg_load_uc |
---|
0,0 → 1,38 |
#!/bin/sh |
prg="adude" |
if [ "$1" = "-u" ]; then |
shift; |
prg="uisp" |
fi |
if [ -z "$1" -o "$1" = "-h" -o "$1" = "--help" ]; then |
echo "prg_load_uc -- load a .hex file into a atmega8 microcontroller" |
echo "" |
echo "Usage: prg_load_uc [-hu] File.hex" |
echo "" |
echo "OPTIONS: -h this help" |
echo " -u use uisp instead of avrdude" |
echo " avrdude can automatically detect dapa or avrusb500." |
echo " uisp can only be used with the parallel port dapa." |
echo "" |
echo "This script can be easily adapted to different programmer types" |
exit 0 |
fi |
pfile="$1" |
if [ "$prg" = "uisp" ]; then |
set -x |
uisp -dlpt=/dev/parport0 --erase -dprog=dapa |
uisp -dlpt=/dev/parport0 --upload if="$pfile" -dprog=dapa -v=3 --hash=32 --verify |
set +x |
fi |
if [ "$prg" = "adude" ]; then |
if grep "Vendor=0403 ProdID=6001" /proc/bus/usb/devices > /dev/null ; then |
set -x |
avrdude -p m8 -c avrusb500 -e -U flash:w:"$pfile" |
set +x |
else |
set -x |
avrdude -p m8 -c dapa -e -U flash:w:"$pfile" |
set +x |
fi |
fi |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/programy/Atmel_C/Blik/prg_read_uc |
---|
0,0 → 1,38 |
#!/bin/sh |
prg="adude" |
if [ "$1" = "-u" ]; then |
shift; |
prg="uisp" |
fi |
if [ -z "$1" -o "$1" = "-h" -o "$1" = "--help" ]; then |
echo "prg_read_uc -- read the flahs of an atmega8 microcontroller" |
echo "" |
echo "Usage: prg_load_uc [-hu] File.hex" |
echo "" |
echo "OPTIONS: -h this help" |
echo " -u use uisp instead of avrdude" |
echo " avrdude can automatically detect dapa or avrusb500." |
echo " uisp can only be used with the parallel port dapa." |
echo "" |
echo "This script can be easily adapted to different programmer types" |
exit 0 |
fi |
pfile="$1" |
if [ "$prg" = "uisp" ]; then |
set -x |
#uisp -dlpt=/dev/parport0 --erase -dprog=dapa |
#uisp -dlpt=/dev/parport0 --upload if="$pfile" -dprog=dapa -v=3 --hash=32 --verify |
set +x |
fi |
if [ "$prg" = "adude" ]; then |
if grep "Vendor=0403 ProdID=6001" /proc/bus/usb/devices > /dev/null ; then |
set -x |
avrdude -v -v -p m8 -c avrusb500 -U flash:r:"$pfile:i" |
set +x |
else |
set -x |
avrdude -p m8 -c dapa -U flash:r:"$pfile:i" |
set +x |
fi |
fi |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/programy/C/test/test/CMakeLists.txt |
---|
0,0 → 1,20 |
#original Makefile.am contents follow: |
#dataFiles = test.c lib.h lib.c cmakelibc.png CMakeLists.txt CMakeLists.txt.src |
#templateName = cmakelibc |
# |
#### no need to change below: |
#template_DATA = $(templateName).kdevtemplate |
#templatedir = ${appwizarddatadir}/templates |
# |
#appwizarddatadir = ${kde_datadir}/kdevappwizard |
#$(templateName).tar.gz: |
# $(TAR) -cf $(templateName).tar -C $(srcdir) ${dataFiles} |
# $(GZIP) -9 $(templateName).tar |
# |
#archivedir = ${appwizarddatadir} |
#archive_DATA = $(templateName).tar.gz ${templateName}.png |
# |
#CLEANFILES = *.tar.gz |
/programy/C/test/test/COPYING |
---|
0,0 → 1,340 |
GNU GENERAL PUBLIC LICENSE |
Version 2, June 1991 |
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
Everyone is permitted to copy and distribute verbatim copies |
of this license document, but changing it is not allowed. |
Preamble |
The licenses for most software are designed to take away your |
freedom to share and change it. By contrast, the GNU General Public |
License is intended to guarantee your freedom to share and change free |
software--to make sure the software is free for all its users. This |
General Public License applies to most of the Free Software |
Foundation's software and to any other program whose authors commit to |
using it. (Some other Free Software Foundation software is covered by |
the GNU Library General Public License instead.) You can apply it to |
your programs, too. |
When we speak of free software, we are referring to freedom, not |
price. Our General Public Licenses are designed to make sure that you |
have the freedom to distribute copies of free software (and charge for |
this service if you wish), that you receive source code or can get it |
if you want it, that you can change the software or use pieces of it |
in new free programs; and that you know you can do these things. |
To protect your rights, we need to make restrictions that forbid |
anyone to deny you these rights or to ask you to surrender the rights. |
These restrictions translate to certain responsibilities for you if you |
distribute copies of the software, or if you modify it. |
For example, if you distribute copies of such a program, whether |
gratis or for a fee, you must give the recipients all the rights that |
you have. You must make sure that they, too, receive or can get the |
source code. And you must show them these terms so they know their |
rights. |
We protect your rights with two steps: (1) copyright the software, and |
(2) offer you this license which gives you legal permission to copy, |
distribute and/or modify the software. |
Also, for each author's protection and ours, we want to make certain |
that everyone understands that there is no warranty for this free |
software. If the software is modified by someone else and passed on, we |
want its recipients to know that what they have is not the original, so |
that any problems introduced by others will not reflect on the original |
authors' reputations. |
Finally, any free program is threatened constantly by software |
patents. We wish to avoid the danger that redistributors of a free |
program will individually obtain patent licenses, in effect making the |
program proprietary. To prevent this, we have made it clear that any |
patent must be licensed for everyone's free use or not licensed at all. |
The precise terms and conditions for copying, distribution and |
modification follow. |
GNU GENERAL PUBLIC LICENSE |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
0. This License applies to any program or other work which contains |
a notice placed by the copyright holder saying it may be distributed |
under the terms of this General Public License. The "Program", below, |
refers to any such program or work, and a "work based on the Program" |
means either the Program or any derivative work under copyright law: |
that is to say, a work containing the Program or a portion of it, |
either verbatim or with modifications and/or translated into another |
language. (Hereinafter, translation is included without limitation in |
the term "modification".) Each licensee is addressed as "you". |
Activities other than copying, distribution and modification are not |
covered by this License; they are outside its scope. The act of |
running the Program is not restricted, and the output from the Program |
is covered only if its contents constitute a work based on the |
Program (independent of having been made by running the Program). |
Whether that is true depends on what the Program does. |
1. You may copy and distribute verbatim copies of the Program's |
source code as you receive it, in any medium, provided that you |
conspicuously and appropriately publish on each copy an appropriate |
copyright notice and disclaimer of warranty; keep intact all the |
notices that refer to this License and to the absence of any warranty; |
and give any other recipients of the Program a copy of this License |
along with the Program. |
You may charge a fee for the physical act of transferring a copy, and |
you may at your option offer warranty protection in exchange for a fee. |
2. You may modify your copy or copies of the Program or any portion |
of it, thus forming a work based on the Program, and copy and |
distribute such modifications or work under the terms of Section 1 |
above, provided that you also meet all of these conditions: |
a) You must cause the modified files to carry prominent notices |
stating that you changed the files and the date of any change. |
b) You must cause any work that you distribute or publish, that in |
whole or in part contains or is derived from the Program or any |
part thereof, to be licensed as a whole at no charge to all third |
parties under the terms of this License. |
c) If the modified program normally reads commands interactively |
when run, you must cause it, when started running for such |
interactive use in the most ordinary way, to print or display an |
announcement including an appropriate copyright notice and a |
notice that there is no warranty (or else, saying that you provide |
a warranty) and that users may redistribute the program under |
these conditions, and telling the user how to view a copy of this |
License. (Exception: if the Program itself is interactive but |
does not normally print such an announcement, your work based on |
the Program is not required to print an announcement.) |
These requirements apply to the modified work as a whole. If |
identifiable sections of that work are not derived from the Program, |
and can be reasonably considered independent and separate works in |
themselves, then this License, and its terms, do not apply to those |
sections when you distribute them as separate works. But when you |
distribute the same sections as part of a whole which is a work based |
on the Program, the distribution of the whole must be on the terms of |
this License, whose permissions for other licensees extend to the |
entire whole, and thus to each and every part regardless of who wrote it. |
Thus, it is not the intent of this section to claim rights or contest |
your rights to work written entirely by you; rather, the intent is to |
exercise the right to control the distribution of derivative or |
collective works based on the Program. |
In addition, mere aggregation of another work not based on the Program |
with the Program (or with a work based on the Program) on a volume of |
a storage or distribution medium does not bring the other work under |
the scope of this License. |
3. You may copy and distribute the Program (or a work based on it, |
under Section 2) in object code or executable form under the terms of |
Sections 1 and 2 above provided that you also do one of the following: |
a) Accompany it with the complete corresponding machine-readable |
source code, which must be distributed under the terms of Sections |
1 and 2 above on a medium customarily used for software interchange; or, |
b) Accompany it with a written offer, valid for at least three |
years, to give any third party, for a charge no more than your |
cost of physically performing source distribution, a complete |
machine-readable copy of the corresponding source code, to be |
distributed under the terms of Sections 1 and 2 above on a medium |
customarily used for software interchange; or, |
c) Accompany it with the information you received as to the offer |
to distribute corresponding source code. (This alternative is |
allowed only for noncommercial distribution and only if you |
received the program in object code or executable form with such |
an offer, in accord with Subsection b above.) |
The source code for a work means the preferred form of the work for |
making modifications to it. For an executable work, complete source |
code means all the source code for all modules it contains, plus any |
associated interface definition files, plus the scripts used to |
control compilation and installation of the executable. However, as a |
special exception, the source code distributed need not include |
anything that is normally distributed (in either source or binary |
form) with the major components (compiler, kernel, and so on) of the |
operating system on which the executable runs, unless that component |
itself accompanies the executable. |
If distribution of executable or object code is made by offering |
access to copy from a designated place, then offering equivalent |
access to copy the source code from the same place counts as |
distribution of the source code, even though third parties are not |
compelled to copy the source along with the object code. |
4. You may not copy, modify, sublicense, or distribute the Program |
except as expressly provided under this License. Any attempt |
otherwise to copy, modify, sublicense or distribute the Program is |
void, and will automatically terminate your rights under this License. |
However, parties who have received copies, or rights, from you under |
this License will not have their licenses terminated so long as such |
parties remain in full compliance. |
5. You are not required to accept this License, since you have not |
signed it. However, nothing else grants you permission to modify or |
distribute the Program or its derivative works. These actions are |
prohibited by law if you do not accept this License. Therefore, by |
modifying or distributing the Program (or any work based on the |
Program), you indicate your acceptance of this License to do so, and |
all its terms and conditions for copying, distributing or modifying |
the Program or works based on it. |
6. Each time you redistribute the Program (or any work based on the |
Program), the recipient automatically receives a license from the |
original licensor to copy, distribute or modify the Program subject to |
these terms and conditions. You may not impose any further |
restrictions on the recipients' exercise of the rights granted herein. |
You are not responsible for enforcing compliance by third parties to |
this License. |
7. If, as a consequence of a court judgment or allegation of patent |
infringement or for any other reason (not limited to patent issues), |
conditions are imposed on you (whether by court order, agreement or |
otherwise) that contradict the conditions of this License, they do not |
excuse you from the conditions of this License. If you cannot |
distribute so as to satisfy simultaneously your obligations under this |
License and any other pertinent obligations, then as a consequence you |
may not distribute the Program at all. For example, if a patent |
license would not permit royalty-free redistribution of the Program by |
all those who receive copies directly or indirectly through you, then |
the only way you could satisfy both it and this License would be to |
refrain entirely from distribution of the Program. |
If any portion of this section is held invalid or unenforceable under |
any particular circumstance, the balance of the section is intended to |
apply and the section as a whole is intended to apply in other |
circumstances. |
It is not the purpose of this section to induce you to infringe any |
patents or other property right claims or to contest validity of any |
such claims; this section has the sole purpose of protecting the |
integrity of the free software distribution system, which is |
implemented by public license practices. Many people have made |
generous contributions to the wide range of software distributed |
through that system in reliance on consistent application of that |
system; it is up to the author/donor to decide if he or she is willing |
to distribute software through any other system and a licensee cannot |
impose that choice. |
This section is intended to make thoroughly clear what is believed to |
be a consequence of the rest of this License. |
8. If the distribution and/or use of the Program is restricted in |
certain countries either by patents or by copyrighted interfaces, the |
original copyright holder who places the Program under this License |
may add an explicit geographical distribution limitation excluding |
those countries, so that distribution is permitted only in or among |
countries not thus excluded. In such case, this License incorporates |
the limitation as if written in the body of this License. |
9. The Free Software Foundation may publish revised and/or new versions |
of the General Public License from time to time. Such new versions will |
be similar in spirit to the present version, but may differ in detail to |
address new problems or concerns. |
Each version is given a distinguishing version number. If the Program |
specifies a version number of this License which applies to it and "any |
later version", you have the option of following the terms and conditions |
either of that version or of any later version published by the Free |
Software Foundation. If the Program does not specify a version number of |
this License, you may choose any version ever published by the Free Software |
Foundation. |
10. If you wish to incorporate parts of the Program into other free |
programs whose distribution conditions are different, write to the author |
to ask for permission. For software which is copyrighted by the Free |
Software Foundation, write to the Free Software Foundation; we sometimes |
make exceptions for this. Our decision will be guided by the two goals |
of preserving the free status of all derivatives of our free software and |
of promoting the sharing and reuse of software generally. |
NO WARRANTY |
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
REPAIR OR CORRECTION. |
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGES. |
END OF TERMS AND CONDITIONS |
How to Apply These Terms to Your New Programs |
If you develop a new program, and you want it to be of the greatest |
possible use to the public, the best way to achieve this is to make it |
free software which everyone can redistribute and change under these terms. |
To do so, attach the following notices to the program. It is safest |
to attach them to the start of each source file to most effectively |
convey the exclusion of warranty; and each file should have at least |
the "copyright" line and a pointer to where the full notice is found. |
<one line to give the program's name and a brief idea of what it does.> |
Copyright (C) <year> <name of author> |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
Also add information on how to contact you by electronic and paper mail. |
If the program is interactive, make it output a short notice like this |
when it starts in an interactive mode: |
Gnomovision version 69, Copyright (C) year name of author |
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
This is free software, and you are welcome to redistribute it |
under certain conditions; type `show c' for details. |
The hypothetical commands `show w' and `show c' should show the appropriate |
parts of the General Public License. Of course, the commands you use may |
be called something other than `show w' and `show c'; they could even be |
mouse-clicks or menu items--whatever suits your program. |
You should also get your employer (if you work as a programmer) or your |
school, if any, to sign a "copyright disclaimer" for the program, if |
necessary. Here is a sample; alter the names: |
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
<signature of Ty Coon>, 1 April 1989 |
Ty Coon, President of Vice |
This General Public License does not permit incorporating your program into |
proprietary programs. If your program is a subroutine library, you may |
consider it more useful to permit linking proprietary applications with the |
library. If this is what you want to do, use the GNU Library General |
Public License instead of this License. |
/programy/C/test/test/src/CMakeLists.txt |
---|
0,0 → 1,19 |
#this is just a basic CMakeLists.txt, for more information see the cmake manpage |
#add definitions, compiler switches, etc. |
ADD_DEFINITIONS(-Wall -O2) |
#build a shared library |
ADD_LIBRARY(test SHARED test.c) |
#for testing the shared library you probably need some test app too |
ADD_EXECUTABLE(testtest testtest.c) |
#need to link to some other libraries ? just add them here |
TARGET_LINK_LIBRARIES(testtest test) |
#add an install target here |
#INSTALL_FILES(...) |
#INSTALL_PROGRAMS(...) |
#INSTALL_TARGET(...) |
/programy/C/test/test/src/test.c |
---|
0,0 → 1,13 |
#include <stdio.h> |
#include <stdlib.h> |
#include "test.h" |
void do_something() |
{ |
printf("Hello world !\n"); |
} |
/programy/C/test/test/src/test.h |
---|
0,0 → 1,7 |
#ifndef test_H |
#define test_H |
void do_something(); |
#endif |
/programy/C/test/test/src/testtest.c |
---|
0,0 → 1,8 |
#include "test.h" |
int main(int argc, char** argv) |
{ |
do_something(); |
return 0; |
} |
/programy/C/test/test/templates/c |
---|
0,0 → 1,19 |
/*************************************************************************** |
* Copyright (C) 2007 by Jakub Kákona * |
* kaklik@quick.cz * |
* * |
* This program is free software; you can redistribute it and/or modify * |
* it under the terms of the GNU General Public License as published by * |
* the Free Software Foundation; either version 2 of the License, or * |
* (at your option) any later version. * |
* * |
* This program is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
* GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
/programy/C/test/test/templates/h |
---|
0,0 → 1,19 |
/*************************************************************************** |
* Copyright (C) 2007 by Jakub Kákona * |
* kaklik@quick.cz * |
* * |
* This program is free software; you can redistribute it and/or modify * |
* it under the terms of the GNU General Public License as published by * |
* the Free Software Foundation; either version 2 of the License, or * |
* (at your option) any later version. * |
* * |
* This program is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
* GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |