20230413 Configurer le programme de démarrage automatique sur la plate-forme CV1826

20230413 Configurer le programme de démarrage automatique sur la plate-forme CV1826
2023/4/13 10:51


1. Exigences du projet : le matériel doit mesurer la tension/le signal d'horloge de la caméra après sa mise sous tension, mais je ne veux pas me connecter au cv1826 via adb pour allumer la caméra à chaque fois que je l'allume.
C:\Users\Sun>adb shell
/ #
/ # cd /mnt/
/mnt #
/mnt # ls -l
total 28816
drwxr-xr-x 3 root root 4096 Jan 1 00:01 data
drwx------ 2 Racine Racine 4096 Jan 100:00 LOST+FOUND
-RW-RW-1 ROOT ROOT 24250004 AVR 11 2023 SAMPLE_VIO
-RW-R-- 1 ROOT ROOT 5242880 AVR 11 2023 Secure.img
DRWXRWXR- x 2 racine racine 4096 11 avril 2023 tmp_secure
/mnt # chmod 777 sample_vio
/mnt #
/mnt # ./sample_vio 0

 

 


2. C'est facile à savoir : le script /etc/init.d/rcS exécutera récursivement tous les scripts commençant par un grand S au démarrage.
Microsoft Windows [Version 10.0.19045.2728]
(c) Microsoft Corporation. tous les droits sont réservés.

C:\Users\Sun>adb shell
/ #
/ # cd /etc/init.d/
/etc/init.d #
/etc/init.d # ls -l
total 21
-rwxr-xr-x 1 root root 1630 28 mars 2023 S01panel
-rwxr-xr-x 1 racine racine 1012 13 avril 2023 S01syslogd
-rwxr-xr-x 1 racine racine 1004 13 avril 2023 S02klogd -rwxr-xr-x
1 racine racine 2804 13 avril 2023 S02sysctl
-rwxr- xr -x 1 racine racine 843 13 avril 2023 S10auto_mount
-rwxr-xr-x 1 racine racine 1594 13 avril 2023 S10udev
-rwxr-xr-x 1 racine racine 1684 13 avril 2023 S20urandom
-rwxr-xr-x 1 racine racine 1619 13 avril 2023 S30dbus
-rwxr-xr-x 1 racine racine 1001 13 avril 2023 S40bluetooth
-rwxr-xr-x 1 racine racine 438 13 avril 2023 S40network
-rwxr-xr-x 1 racine racine 452 28 mars 2023 S98wlan
-rwxr-xr-x 1 racine racine 563 28 mars 2023 S99adbd
-rwxr-xr-x 1 racine racine 578 28 mars 2023 S99mcu
-rwxr-xr-x 1 racine racine 423 13 avril 2023 rcK
-rwxr-xr-x 1 racine racine 408 13 avril 2023 rcS
/etc /init.d #
/etc/init.d # cat rcS
#!/bin/sh


# Démarrez tous les scripts d'initialisation dans /etc/init.d
# en les exécutant dans l'ordre numérique.
#
pour je dans /etc/init.d/S??* ;faire

     # Ignorer les liens symboliques pendants (le cas échéant).
     [ ! -f "$i" ] && continuer

     case "$i" dans
        *.sh)
            # Script shell source pour la vitesse.
            (
                trap - INT QUIT TSTP
                set start
                . $i
            )
            ;;
        *)
            # Pas d'extension sh, donc sous-processus fork.
            $je commence
            ;;
    esac
terminé

/etc/init.d #

 


3. Ajoutez une caméra de démarrage à S99mcu :
Microsoft Windows [Version 10.0.19045.2728]
(c) Microsoft Corporation. tous les droits sont réservés.

C:\Users\Sun>adb shell
/ #
/ #
/ # cd /etc/init.d/
/etc/init.d #
/etc/init.d # ls -l
total 21
-rwxr-xr-x 1 root racine 1630 28 mars 2023 S01panel
-rwxr-xr-x 1 racine racine 1012 13 avril 2023 S01syslogd
-rwxr-xr-x 1 racine racine 1004 13 avril 2023 S02klogd -rwxr-xr-x 1 racine racine 2804 13 avril 2023
S02sysctl
-rwxr -xr-x 1 racine racine 843 13 avril 2023 S10auto_mount
-rwxr-xr-x 1 racine racine 1594 13 avril 2023 S10udev
-rwxr-xr-x 1 racine racine 1684 13 avril 2023 S20urandom
-rwxr-xr-x 1 racine racine 1619 13 avril 2023 S30dbus
-rwxr-xr-x 1 racine racine 1001 13 avril 2023 S40bluetooth
-rwxr-xr-x 1 racine racine 438 13 avril 2023 S40network
-rwxr-xr-x 1 racine racine 452 28 mars 2023 S98wlan
-rwxr-xr-x 1 racine racine 563 28 mars 2023 S99adbd
-rwxr-xr-x 1 racine racine 606 1 janvier 00:04 S99mcu
-rwxr-xr-x 1 racine racine 423 13 avril 2023 rcK
-rwxr-xr-x 1 racine racine 408 13 avril 2023 rcS
/etc/init.d #
/etc/init.d # chat S99mcu
#!/bin/sh

case "$1" dans
  start)
    printf "MCU de démarrage : "
    /usr/bin/cvi_mv_fw ;
    devmem 0x03000248 32 0x1;
    devmem 0x05025020 32 0xC01E02D;
    devmem 0x05025018 32 0x8107ffff;
    ## séquence d'écriture suspendue pmic
    ## (0x26, 0x1D); -> 0x05026F04[31:16]
    ## (0x80, 0x14); -> 0x05026F04[15:0]
    ## (0x90, 0x10); -> 0x05026F08[31:16]
    ## (0x91, 0x00); -> 0x05026F08[15:0]
    devmem 0x05026F04 32 0x261D8014 ;
    devmem 0x05026F08 32 0x90109100;
    devmem 0x05026020 32 0x5;
    ;;
  stop)
    ;;
  *)
    echo "Utilisation : $0 {démarrer|arrêter}"

esac

sommeil 10
/mnt/sample_vio 0

exit $?/etc/init.d # redémarrage

 

 

 

 


4. Confirmez que sample_vio a démarré automatiquement :
[Mesure réelle :] Après 30 secondes, environ 60 secondes/1 minute, l'AVDD/DVDD de la caméra est sous tension !
Microsoft Windows [Version 10.0.19045.2728]
(c) Microsoft Corporation. tous les droits sont réservés.

C:\Users\Sun>adb shell
/ # ps -e
PID USER COMMAND
    1 root {linuxrc} init
    2 root [kthreadd]
    3 root [rcu_gp]
    4 root [rcu_par_gp]
    5 root [kworker/0:0-eve]
    6 racine [kworker/0:0H-mm]
    7 racine [kworker/u2:0-ev]
    8 racine [mm_percpu_wq]
    9 racine [ksoftirqd/0]
   10 racine [rcu_preempt]
   11 racine [rcu_sched]
   12 racine [rcu_bh]
   13 racine [migration/0]
   14 racine [cpuhp/0]
   15 racine [kdevtmpfs]
   16 racine [netns]
   17 racine [rcu_tasks_kthre]
   18 racine [kworker/0:1-eve]
   19 root [oom_reaper]
   20 root [writeback]
   21 root [kcompactd0]
   22 root [crypto]
   23 root [kblockd]
   24 root [watchdogd]
   25 root [rpciod]
   26 root [kworker/u3:0]
   27 root [xprtiod]
   28 racine [cfg80211]
   29 racine [kswapd0]
   30 racine [nfsiod]
   58 racine [irq/178-axp2101]
   59 racine [irq/97-cviusb-o]
   60 racine [uas]
   61 racine [axp2101]
   62 racine [kworker/0 :2]
   63 racine [kworker/0:3]
   64 racine [btfwwork]
   65 racine [irq/41-mmc0]
   66 racine [irq/42-mmc1]
   67 racine [ion_system_heap]
   68 racine [mmc_complete]
   69 racine [kworker/0:1H-mm]
   70 racine [ipv6_addrconf]
   71 racine [krfcommd]
   73 racine [kworker/u2:1-ev]
   78 racine [kworker/0:2H -mm]
   79 racine [jbd2/mmcblk0p5-]
   80 racine [ext4-rsv-conver]
   91 racine {rcS} /bin/sh /etc/init.d/rcS
  102 racine [cvitask_tpu_wor]
  119 racine /sbin/syslogd -n
  123 racine /sbin/klogd -n
  139 racine [jbd2/mmcblk0p7-]
  140 racine [ext4-rsv-conver]
  144 racine /sbin/udevd -d
  158 racine [kworker/0:3H-mm]
  170 racine [kworker/u2 :2-ev]
  171 racine [kworker/u2:3]
  187 dbus dbus-daemon --system
  192 racine /usr/libexec/bluetooth/bluetoothd -n
  267 racine [f_mtp]
  327 racine mtp-server
  331 racine /usr/bin//adbd
  333 racine {S99mcu} /bin/sh /etc/init.d/S99mcu start
  361 root /bin/sh -
  367 root /mnt/sample_vio 0
  369 root [cvitask_isp_pre]
  370 root [cvitask_isp_pos]
  371 root [cvitask_isp_err]
  382 root /bin/ sh -
  384 racine /sbin/udevd -d
  385 racine ps -e
/ #

 


5. Défaut mineur :
si sample_vio s'exécute au premier plan, exécutez le redémarrage, cv1826 ne redémarrera pas. Il existe deux solutions :
(1) Si votre APP peut s'exécuter en arrière-plan, vous pouvez utiliser :
sleep 10
/mnt/sample_vio 0 &

(2) Si votre application ne peut pas s'exécuter en arrière-plan, tuez-la, puis redémarrez
kill -9 367
kill -9 333

  333 racine {S99mcu} /bin/sh /etc/init.d/S99mcu start
  361 racine /bin/sh -
  367 racine /mnt/sample_vio 0

(3) Solution universelle : éteignez ! (Retirez la batterie/ou réinsérez l'interface TYPE-C ^ _)

Je suppose que tu aimes

Origine blog.csdn.net/wb4916/article/details/130136722
conseillé
Classement