Eclipse AVR – instalacja biblioteki u8glib

Na prośbę jednego z czytelników zamieszczam instrukcję jak “odpalić” bibliotekę graficzną U8glib pod środowisko programistyczne Eclipse z pluginem AVR. Instalacja jest bardzo podobna jak w przypadku Atmel Studio.

 

 

 

1. Ściągamy i rozpakowujemy paczkę z naszą biblioteką którą można pobrać TU 

 

2. Uruchamiamy Eclipse i tworzymy nowy projekt

 

New_Project

  • Jako typ projektu wybieramy AVR Cross Target Static Library
  • Nadajemy nazwę projektu, najlepiej “u8glib”

Static_Library

  • Klikamy 2x Next i wybieramy nasz mikrokontroler oraz taktowanie zegara.
  • W moim przypadku jest to ATmega16, na której testuję tą bibliotekę. Do testów ustawiłem taktowanie 1MHz.

MCU_Type

3. Dodajemy pliki biblioteki

 

  • Klikamy PPM na naszym projekcie w Project Explorer.
  • Z listy wybieramy Import…

Import

  • Otworzy nam się okienko z którego wybieramy typ plików do zaimportowania.
  • Wybieramy File System z zakładki General.

File_System

  • W kolejnym okienku klikamy Browse…
  • Wybieramy folder z plikami biblioteki, u mnie jest to C:\u8glib\src
  • Odhaczamy wszystkie pliki i klikamy Finish

Import_SRC

  • Project Explorer powinien wyglądać tak:

Project_Explorer

4. Edytujemy ustawienia projektu

 

  • Klikamy PPM na naszym projekcie w Project Explorer
  • Z listy na samym dole wybieramy Properties

Properties

  • W okienku które nam wyskoczy po lewej stronie w zakładkach wybieramy C/C++ Build – Settings.
  • Następnie u góry w rozwijanym menu Configuration zmieniamy na All configurations.
  • Po czym w zakładce Tool Settings -> AVR Compiler -> Symbols definiujemy nowy symbol F_CPU=1000000UL który odpowiada za ustawienie taktowania zegara. Jak wspomniałem wcześniej, u mnie jest to 1MHz. Należy tą wartość zmienić zależnie od tego z jakim zegarem ma pracować mikrokontroler w naszym projekcie

Symbols

  • Następnie przechodzimy do zakładki Optimization.
  • Tam zmieniamy Optimization Level na Size Optimizations (-Os).
  • Musimy jeszcze dodać dodatkowe flagi. W Other Optimization Flags dopisujemy -ffunction-sections -fdata-sections

Optimization

5. Budujemy bibliotekę

 

  • Musimy teraz zbudować naszą bibliotekę żeby móc z niej korzystać.
  • Klikamy na ikonkę młotka i czekamy. Kompilacja potrwa około 30 sekund.

Build

6. Tworzymy przykładowy projekt

 

  • Robimy to tak samo jak poprzednio, tylko jako typ projektu wybieramy AVR Cross Target Application

Test

 7. Edytujemy ustawienia przykładowego projektu 

 

  • Tak jak poprzednio definiujemy symbol F_CPU=1000000UL

Test_Properties

  • Zmieniamy opcje optymalizacji, przechodzimy do zakładki Opimization.
  • Zmieniamy Optimization Level na Size Optimizations (-Os).
  • Dodajemy flagi w Other Optimization Flags dopisujemy -ffunction-sections -fdata-sections

Test_Optimization

  • Przechodzimy do zakładki AVR C Linker – General
  • W Other Arguments dopisujemy -Wl,--gc-sections

Test_Linker

  • Przechodzimy zakładki AVR Compiler – Directories
  • I dodajemy ścieżkę ..\..\u8glib klikając na zielony plusik

Test_Directories

  • Następnie przechodzimy do AVR C Linker – Libraries
  • I dodajemy w Libraries nazwę biblioteki czyli u8glib
  • W Libraries Path dodajemy ścieżkę do biblioteki ..\..\u8glib\Debug

Test_Patch

  • Wszystkie dopisane ścieżki są relatywne  i wskazują na folder gdzie znajduje się poprzednio utworzony projekt z biblioteką.
8. Tworzymy przykładowy program

 

  • Nie pozostaje nam już nic innego jak dodać nowy plik z rozszerzeniem .c do naszego przykładowego projektu
  • Wkleić przykładowy kod wyświetlający napis “Hello World”
/*
 *  Na podstawie https://code.google.com/p/u8glib/wiki/thelloworld
 *  Testowane na ATmega16
 *  Autor: Gembcior
 *  https://gembcior.pl
 */

#include "u8g.h"
#include <avr/interrupt.h>
#include <avr/io.h>

u8g_t u8g;

void draw(void)
{
  u8g_SetFont(&u8g, u8g_font_6x10);
  u8g_DrawStr(&u8g, 10, 20, "Hello World!");
}

int main(void)
{
  /*
    CS: PORTB, Bit 4 --> PN(1,4)
    A0: PORTB, Bit 3 --> PN(1,3)
    SCK: PORTB, Bit 7--> PN(1,7)
    MOSI: PORTB, Bit 5 --> PN(1,5)
  */
	u8g_InitSPI(&u8g, &u8g_dev_st7565_dogm128_sw_spi, PN(1, 7), PN(1, 5), PN(1, 4), PN(1, 3), U8G_PIN_NONE);
	u8g_SetContrast(&u8g,55); // Ustawienie kontrastu

	for(;;)
	{
		u8g_FirstPage(&u8g);
		do
		{
			draw();
		} while ( u8g_NextPage(&u8g) );
		u8g_Delay(100);
	}
}
  • Skompilować i wgrać wsad do mikrokontrolera.

Test_Build

 

W tym poradniku korzystałem z Eclipse Kepler w wersji 32 bitowej z wgranym pluginem avr w wersji 2.4 i Atmel Toolchain 3.4.2.1573

Eclipse AVR – instalacja biblioteki u8glib
Ocena: 5 (3 głosów)

7 komentarzy

  • Toperko
    24 października 2014 o 15:24

    Skompilowało mi dopiero po zmianie na “-Wl,–gc-sections”. Lece do sklepu po 74hc125!

  • stan
    29 września 2016 o 15:21

    Zawsze używałem AVR GCC, ale niestety miałem problemy z uruchomieniem tej biblioteki. Znalazłem ten poradnik i pomimo postępowania krok po kroku wywala mi jakiś błąd. Najwyraźniej nie znajduje świeżo skompilowanej biblioteki. Wersja Eclipse i toolchain różni się oczywiście nieco, ale to chyba nie jest powodem błędu. Chyba wrócę do przestarzałego AVR GCC, bo tworzenie projektu jest szybsze i prostsze. Niestety trzeba się użerać z Makefile 🙁

    c:/program files/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: cannot find -lu8glib

    • 29 września 2016 o 15:28

      Czy kompilacja biblioteki przebiegła u Ciebie pomyślnie? Mam na myśli krok 5 w moim poradniku.

  • stan
    29 września 2016 o 16:26

    Tak, sama biblioteka skompilowała się bez żadnych błędów. Właśnie przeglądam internet w poszukiwaniu informacji jak ugryźć to pod WinAVR. Wiem, że to stary i nie kontynuowany projekt, ale mam pod nim masę gotowych projektów a pierwsze próby przeniesienia się z nimi pod Eclipse nie wypadają zachęcająco.

  • stan
    29 września 2016 o 18:14

    Pod WinAVR poszlo bez problemow. Przyznaję, że Eclipsem bawiłem się dość krótko, ale nie rozumiem tych zachwytów nad nim. Dzięki.

  • macron
    3 maja 2017 o 15:51

    This is interesting page, bookmarked for future referrence

  • Albertexiva
    20 sierpnia 2018 o 13:26

    The prostate gland is central to the part of a male’s reproductive system. It secretes fluids that assist the transportation and activation of sperm. The prostate related is located just while watching rectum, below the bladder and around the urethra. When there is prostate problem, in most cases really miserable and inconvenient for that patient as his urinary strategy is directly affected.

    The common prostate medical problems are prostate infection, enlarged prostate and cancer of the prostate.

    Prostate infection, also called prostatitis, is among the most common prostate-related symptom in men younger than 55 years of age. Infections from the prostate gland are classified into four types – acute bacterial prostatitis, chronic bacterial prostatitis, chronic abacterial prostatitis and prosttodynia.

    Acute bacterial prostatitis is the least common of most kinds of prostate infection. It is a result of bacteria perfectly located at the large intestines or urinary tract. Patients may go through fever, chills, body aches, back pains and urination problems. This condition is treated by making use of antibiotics or non-steroid anti-inflammatory drugs (NSAIDs) to help remedy the swelling.

    Chronic bacterial prostatitis can be a condition of a particular defect within the gland along with the persistence presence of bacteria in the urinary tract. It can be brought on by trauma to the urinary tract or by infections received from other parts of the body. A patient may experience testicular pain, small of the back pains and urination problems. Although it is uncommon, it is usually treated by removal from the prostate defect as well as the use antibiotics and NSAIDs to take care of the redness.

    Non-bacterial prostatitis is the reason approximately 90% of most prostatitis cases; however, researchers have not yet to ascertain the causes of these conditions. Some researchers believe that chronic non-bacterial prostatitis occur as a result of unknown infectious agents while other think that intensive exercise and lifting could cause these infections.

    Maintaining a Healthy Prostate

    To prevent prostate diseases, a proper weight loss program is important. These are some of the things you can do to maintain your prostate healthy.

    1. Drink sufficient water. Proper hydration is critical for our health and wellbeing and it will also keep the urinary track clean.

    2. Some studies suggest that a couple of ejaculations per week will help to prevent cancer of prostate.

    3. Eat red meat sparingly. It has been shown that consuming a lot more than four meals of beef a week will heighten the probability of prostate diseases and cancer.

    4. Maintain a suitable diet with cereals, vegetable and fruits to be sure sufficient intake of nutrients needed for prostate health.

    The most important measure to consider to make certain a wholesome prostate would be to go for regular prostate health screening. If you are forty yrs . old and above, you need to choose prostate examination at least once annually.

Dodaj komentarz

*

*

Ile jest * Time limit is exhausted. Please reload CAPTCHA.

banner

Korzystając z tej strony wyrażasz zgodę na korzystanie z plików cookie. Zobacz szczegóły

Wykorzystujemy pliki cookie do spersonalizowania treści i reklam, aby oferować funkcje społecznościowe i analizować ruch w naszej witrynie. Informacje o tym, jak korzystasz z naszej witryny, udostępniamy partnerom społecznościowym, reklamowym i analitycznym. Więcej informacji znajdziesz na Jak Google wykorzystuje dane gromadzone podczas korzystania z witryn i aplikacji naszych partnerów.

Zamknij