User:FabienM: Difference between revisions
From ArmadeusWiki
(→C++) |
(→Blog) |
||
(37 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[MemberList | << liste des membres]] | [[MemberList | << liste des membres]] | ||
= Mes petites bidouilles avec l'armadeus = | |||
* [[Une led qui clignote avec le spartan 3]] | |||
* [[Petits trucs en vrac]] | |||
* [[Led sensor]] | |||
* [[vim | The best editor in the world]] | |||
= Trucs = | |||
== Python en environnement virtuel == | |||
Un pense bète pour installer la version voulue de python en environnement virtuel avec virtualenv: | |||
=== virtualenv et autre tkinter === | |||
<pre> | |||
apt-get install python-tk python3-tk tk-dev | |||
apt-get install python-virtualenv | |||
</pre> | |||
=== Python 3.7.4 === | |||
<pre> | |||
sudo apt-get install libffi-dev | |||
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz | |||
tar -Jxvf Python-3.7.4.tar.xz | |||
cd Python-3.7.4 | |||
./configure --enable-shared | |||
make | |||
sudo make install | |||
sudo ldconfig /usr/local/lib | |||
</pre> | |||
=== virtualenv === | |||
* Virtual env configuration: | |||
= | <pre> | ||
apt-get install python-virtualenv | |||
mkdir virtenv | |||
cd virtenv | |||
virtualenv --python=/usr/local/bin/python3.7 envp37 | |||
</pre> | |||
* enum bug fix: | |||
<pre> | |||
cd ~/virtenv/envp37/lib/python3.7 | |||
ln -s /usr/local/lib/python3.7/enum.py | |||
</pre> | |||
* Activation: | |||
<pre> | |||
source /home/armadeus/virtenv/envp37/bin/activate | |||
</pre> | |||
* | * Desactivation: | ||
<pre> | |||
deactivate | |||
</pre> | |||
= '''P'''eripheral '''O'''n '''D'''emand = | = '''P'''eripheral '''O'''n '''D'''emand = | ||
Line 46: | Line 76: | ||
* [[A simple design with Wishbone bus]] | * [[A simple design with Wishbone bus]] | ||
* [[How to use kernel 2.6.38.x on APF27]] | |||
== Trash == | |||
* [[APF27_FPGA-IMX_interface_description | Description of FPGA-IMX interface for APF27]] | |||
* [[APF51_FPGA-IMX_interface_description | Description of FPGA-IMX interface for APF51]] | |||
* [[FPGA | FPGA on APF introduction]] | |||
* [[FPGA and led | Button and LED]] | |||
== Projets == | == Projets == | ||
Line 55: | Line 92: | ||
* [[OOCP]] (Only One Cable Project) | * [[OOCP]] (Only One Cable Project) | ||
* [[Use MySQL-client on apf9328]] | * [[Use MySQL-client on apf9328]] | ||
* [[Light-APF27Dev | Light-APF27Dev project ]] | |||
= Liens utiles = | = Liens utiles = | ||
Line 61: | Line 99: | ||
* Site [http://www.armadeus.com/english/index.html entreprise] | * Site [http://www.armadeus.com/english/index.html entreprise] | ||
* Les codes de retour d'erreurs : http://www.opengroup.org/onlinepubs/007908799/xsh/errno.h.html | * Les codes de retour d'erreurs : http://www.opengroup.org/onlinepubs/007908799/xsh/errno.h.html | ||
* [[ | * [[Buildroot_Packages]] | ||
* [http://sebsauvage.net/files/20130426_cpp_quovadis2013cppontheweb-130425105424-phpapp01.pdf Un papier très intéressant] d'un développeur de jeux vidéo prônant l'utilisation du C++ ... pour le web. Notamment grâce à l'utilisation de [http://sebsauvage.net/files/20130426_cpp_multiplatformconthewebwithemscripten-130405172545-phpapp01.pdf emscripten] qui permet de compiler du C++ vers le javascript (HTML5). | |||
= Somes usefull tricks = | |||
== press a button == | |||
Here, function to «press enter to continue» on apf in different languages : | |||
<source lang="bash"> | |||
setbit /proc/driver/gpio/portFmode 13 1 # set pin as gpio | |||
setbit /proc/driver/gpio/portFdir 13 0 # set pin as input | |||
setbit /proc/driver/gpio/portFirq 13 1 # irq on rising edge | |||
/usr/bin/testsuite/testbutton /dev/gpio/PF13 3 | |||
</source> | |||
With ''testbutton'' program comming from | |||
''target/linux/modules/fpga/wishbone_example/wb_button''. Type «make» in this | |||
directory to compile it. | |||
== Logging with timestamps in seconds == | |||
<source lang="bash"> | |||
#!/bin/sh | |||
while true | |||
do | |||
LIGHT=$(cat /sys/class/hwmon/hwmon0/device/in3_input) | |||
TIME=$(date +%s) | |||
echo $TIME", sec, "$LIGHT", mV," >> log; | |||
sleep 2 | |||
done | |||
</source> | |||
== C == | == Press enter to continue == | ||
=== C === | |||
<source lang="C"> | <source lang="C"> | ||
Line 82: | Line 147: | ||
</source> | </source> | ||
== C++ == | === C++ === | ||
<source lang="C"> | <source lang="C"> | ||
#include <stdio.h> //XXX | #include <stdio.h> //XXX | ||
Line 96: | Line 161: | ||
</source> | </source> | ||
== Python == | === Python 2 === | ||
<source lang="python"> | <source lang="python"> | ||
Line 105: | Line 170: | ||
</source> | </source> | ||
=== Python 3 === | |||
<source lang="python"> | |||
def pressEnterToContinue(): | |||
print("Press enter to continue") | |||
input() | |||
</source> | |||
= Kernel Driver = | |||
* [[IIO kernel driver model]] | |||
* [[UIO kernel driver model]] | |||
= bac à sable = | = bac à sable = | ||
[[Image:dessin.svg]] | |||
* [[APF6_SP_DDR3_PINOUT]] | |||
* [[APF6_SP The full howto]] | |||
== Wavedrom == | |||
If [https://github.com/Martoni/mediawiki_wavedrom wavedrom plugin] is installed on this wiki, we can see a beautiful waves bellow : | |||
<wavedrom> | |||
{ signal: [ | |||
{ name: "clk", wave: "p......" }, | |||
{ name: "bus", wave: "x.34.5x", data: "head body tail" }, | |||
{ name: "wire", wave: "0.1..0." }, | |||
]} | |||
</wavedrom> | |||
= Blog = | |||
[[ | * [[2022_02_18_Container_docker_pour_vieux_BSP]] |
Latest revision as of 16:40, 18 February 2022
Mes petites bidouilles avec l'armadeus
Trucs
Python en environnement virtuel
Un pense bète pour installer la version voulue de python en environnement virtuel avec virtualenv:
virtualenv et autre tkinter
apt-get install python-tk python3-tk tk-dev apt-get install python-virtualenv
Python 3.7.4
sudo apt-get install libffi-dev wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz tar -Jxvf Python-3.7.4.tar.xz cd Python-3.7.4 ./configure --enable-shared make sudo make install sudo ldconfig /usr/local/lib
virtualenv
- Virtual env configuration:
apt-get install python-virtualenv mkdir virtenv cd virtenv virtualenv --python=/usr/local/bin/python3.7 envp37
- enum bug fix:
cd ~/virtenv/envp37/lib/python3.7 ln -s /usr/local/lib/python3.7/enum.py
- Activation:
source /home/armadeus/virtenv/envp37/bin/activate
- Desactivation:
deactivate
Peripheral On Demand
Participation à la documentation ArmadeuS Project
- How to make a VHDL design in Ubuntu/Debian
- How to simulate post synthesis and post place & route design with GHDL
Trash
- Description of FPGA-IMX interface for APF27
- Description of FPGA-IMX interface for APF51
- FPGA on APF introduction
- Button and LED
Projets
- Camera C38A with chip ov7620
- Camera omnivision VC21CC1
- Robotic
- Compteur d'énergie électrique
- OOCP (Only One Cable Project)
- Use MySQL-client on apf9328
- Light-APF27Dev project
Liens utiles
- Projets sourceforge
- Site entreprise
- Les codes de retour d'erreurs : http://www.opengroup.org/onlinepubs/007908799/xsh/errno.h.html
- Buildroot_Packages
- Un papier très intéressant d'un développeur de jeux vidéo prônant l'utilisation du C++ ... pour le web. Notamment grâce à l'utilisation de emscripten qui permet de compiler du C++ vers le javascript (HTML5).
Somes usefull tricks
press a button
Here, function to «press enter to continue» on apf in different languages :
setbit /proc/driver/gpio/portFmode 13 1 # set pin as gpio
setbit /proc/driver/gpio/portFdir 13 0 # set pin as input
setbit /proc/driver/gpio/portFirq 13 1 # irq on rising edge
/usr/bin/testsuite/testbutton /dev/gpio/PF13 3
With testbutton program comming from target/linux/modules/fpga/wishbone_example/wb_button. Type «make» in this directory to compile it.
Logging with timestamps in seconds
#!/bin/sh
while true
do
LIGHT=$(cat /sys/class/hwmon/hwmon0/device/in3_input)
TIME=$(date +%s)
echo $TIME", sec, "$LIGHT", mV," >> log;
sleep 2
done
Press enter to continue
C
#include <stdio.h>
void pressEnterToContinue(void)
{
printf("Press enter to continue\n");
getc(stdin);//XXX
while( getc(stdin) != '\n') ;
}
C++
#include <stdio.h> //XXX
#include <iostream>
void pressEnterToContinue(void)
{
cout << "Press enter to continue" << endl;
getc(stdin); //XXX
std::cin.ignore( std::numeric_limits <std::streamsize> ::max(), '\n' );
}
Python 2
def pressEnterToContinue():
print "Press enter to continue"
raw_input()
Python 3
def pressEnterToContinue():
print("Press enter to continue")
input()
Kernel Driver
bac à sable
Wavedrom
If wavedrom plugin is installed on this wiki, we can see a beautiful waves bellow :