Benutzer-Werkzeuge

Webseiten-Werkzeuge



programming:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
programming:start [2022/01/01 16:11] – [DTC] frankprogramming:start [2023/10/25 14:18] (aktuell) – [Linux] frank
Zeile 1: Zeile 1:
 +====== Programmierung ======
 +in diesem Abschnitt habe ich ein paar von mir häufig verwendete Code-Schnipsel hinterlegt. vielleicht ist der eine oder andere hilfreich ;)
 +
 +[[.:git:start|GIT]] [[.:svn:start|SVN]]
 +
 +[[.:bash]]
 +
 +[[.:javascript]]
 +
 +[[.:mysql]]
 +
 +[[.:python:start|Python]]
 +
 +[[.:php|PHP]]
 +
 +[[.:vscode|VSCode]]
 +===== Batch =====
 +===== C/C++ =====
 +
 +==== Makefile ====
 +
 +  $(warning $$src is [${src}])
 +
 +string-manipulation:
 +
 +https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_8.html#SEC77
 +==== Linux ====
 +
 +=== Fixes (für backports) ===
 +
 +  Cc: stable@vger.kernel.org
 +
 +in den Signed-Off-Bereich
 +
 +Quelle: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
 +
 +=== debugging ===
 +
 +== Using dynamic debug ==
 +
 +Add options:
 +  
 +  CONFIG_DYNAMIC_DEBUG=y
 +  CONFIG_DEBUG_FS=y
 +
 +And enable it from userspace (here all for network drivers):
 +
 +  echo "file drivers/net/* +p"> /sys/kernel/debug/dynamic_debug/control    
 +
 +== Manual by adding new messages ==
 +
 +  printk(KERN_ALERT "DEBUG: Passed %s %d val:0x%0x\n",__FUNCTION__,__LINE__,(unsigned int)val);
 +
 +  dev_err(dev,"DEBUG: Passed %s %d val:0x%x\n",__FUNCTION__,__LINE__,val);
 +
 +
 +=== cmdline ===
 +
 +<code>
 +//register params
 +static int startreg=-1;
 +module_param( startreg, int, S_IRUGO );
 +static int regcount=10;
 +module_param( regcount, int, S_IRUGO );
 +
 +//look for module-name
 +static struct mdio_driver realtek_mdio_driver = {
 + .mdiodrv.driver = {
 + .name = "realtek-mdio",//<<<<
 +
 +//pass cmdline arguments
 +realtek-mdio.startreg=0x1300 realtek-mdio.regcount=50
 +</code>
 +
 +  * http://embeddedguruji.blogspot.com/2018/12/passing-parameters-to-linux-device.html
 +  * https://ezs.kr.hsnr.de/TreiberBuch/html/sec.treiberparam.html
 +
 +=== Links ===
 +
 +  * [[https://elixir.bootlin.com/linux/latest/source|elixir@bootlin]]
 +  * Patchwork
 +    * [[https://patchwork.kernel.org/project/linux-mediatek/list/|Mediatek]]
 +    * [[https://patchwork.kernel.org/project/linux-rockchip/list/|Rockchip]]
 +    * [[https://patchwork.ozlabs.org/project/devicetree-bindings/list/|dt-bindings]]
 +  * GIT:
 +    * [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/refs/|stable]] [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/|torvalds]] [[https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/log/|linux-next]]
 +    * [[https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/log/|net]] [[https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/log/|net-next]]
 +    * [[https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next|drm mtk next]][[https://cgit.freedesktop.org/drm/drm/log/|drm]]
 +    * [[https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux.git|neues mediatek repo]] ([[https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux.git/log/?h=for-next|altes mtk dts next]])
 +    * [[https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git|Rockchip SoC/DTS]]
 +    * [[https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git|dt-bindings]]
 +    * [[https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git/log/?h=for-next|pinctrl-next]]
 +
 +==== U-Boot ====
 +
 +=== debugging ===
 +
 +  #define DEBUG 1
 +
 +vor "#include <common.h>" um vorhandene/zusätzliche debug() anzuzeigen
 +
 +  debug("## %s:%d...\n", __FILE__,__LINE__);
 +
 +oder manuell (wird immer angezeigt):
 +
 +  printf("%s:%d val:0x%0x\n",__FUNCTION__,__LINE__,(u32)val);
 +
 +=== Links ===
 +
 +  * [[https://elixir.bootlin.com/u-boot/latest/source|elixir@bootlin]]
 +  * [[https://patchwork.ozlabs.org/project/uboot/list/|Uboot-Patchwork]] [[https://lists.denx.de/pipermail/u-boot/|Mailinglist Archiv]]
 +  * [[https://gitlab.denx.de/u-boot/u-boot|uboot gitlab]]
 +
 +
 +==== DTC ====
 +
 +http://thesoulofamachine.blogspot.com/2016/07/linux-dts-compilation-using-dtc-compiler.html
 +
 +DTB dekompilieren:
 +
 +  sudo apt-get install device-tree-compiler
 +
 +  dtc -I dtb -O dts sun8i-h3-orangepi-pc.dtb -o /tmp/tmp.dts 
 +  less /tmp/tmp.dts
 +  
 +  #Alternative ohne temporäre Datei
 +  dtc -I dtb -O dts ../build/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dtb | less
 +  
 +  #aus sysfs
 +  dtc -I fs -O dts /sys/firmware/devicetree/base | less
 +
 +=== dtbs_check ===
 +
 +  sudo apt install swig yamllint
 +
 +  pip3 install dtschema --upgrade
 +  pip3 show dtschema
 +
 +  ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/ata/ahci-platform.yaml
 +  ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make defconfig #dtbs_check need kernel-config
 +  ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/ata/ahci-platform.yaml
 +  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make multi_v7_defconfig
 +  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/ata/ahci-platform.yaml
 +  
 +  #maybe need to add dir to path
 +  PATH=$PATH:~/.local/bin
 +
 +=== DTS ===
 +
 +Mapping wifi Eeprom data to pcie slot:
 +
 +https://forum.banana-pi.org/t/802-11ac-module-gives-max-6dbi-transmitter-power/14238/23
 +
 +===== CSS =====
 +
 +===== HTML =====