From bcbe1431c382a96c2987699db87dfb1fa584edf1 Mon Sep 17 00:00:00 2001 From: Rohmindo <shalseh@naver.com> Date: Fri, 3 Jul 2020 07:53:57 +0100 Subject: [PATCH] library management Pi --- app | Bin 8560 -> 8560 bytes app.c | 4 +- hum/.hum_dev.ko.cmd | 1 - hum/.hum_dev.mod.o.cmd | 499 ----------------------- hum/.hum_dev.o.cmd | 720 ---------------------------------- hum/.tmp_versions/hum_dev.mod | 3 - hum/Makefile | 22 -- hum/Module.symvers | 0 hum/hum_dev.c | 161 -------- hum/hum_dev.ko | Bin 7948 -> 0 bytes hum/hum_dev.mod.c | 48 --- hum/hum_dev.mod.o | Bin 2968 -> 0 bytes hum/hum_dev.o | Bin 7176 -> 0 bytes hum/modules.order | 1 - hydro/hydro_dev.c | 276 +++++++------ hydro/hydro_dev.ko | Bin 7604 -> 7952 bytes hydro/hydro_dev.mod.c | 2 +- hydro/hydro_dev.mod.o | Bin 2972 -> 2972 bytes hydro/hydro_dev.o | Bin 6592 -> 7180 bytes smoke/.smoke_dev.o.cmd | 2 + smoke/Makefile | 3 +- smoke/app | Bin 0 -> 8088 bytes smoke/app.c | 24 ++ smoke/smoke_dev.c | 96 ++--- smoke/smoke_dev.ko | Bin 7792 -> 7644 bytes smoke/smoke_dev.mod.c | 2 +- smoke/smoke_dev.mod.o | Bin 2908 -> 2908 bytes smoke/smoke_dev.o | Bin 7036 -> 6688 bytes test | Bin 8528 -> 0 bytes test.c | 125 ------ 30 files changed, 216 insertions(+), 1773 deletions(-) delete mode 100644 hum/.hum_dev.ko.cmd delete mode 100644 hum/.hum_dev.mod.o.cmd delete mode 100644 hum/.hum_dev.o.cmd delete mode 100644 hum/.tmp_versions/hum_dev.mod delete mode 100644 hum/Makefile delete mode 100644 hum/Module.symvers delete mode 100644 hum/hum_dev.c delete mode 100644 hum/hum_dev.ko delete mode 100644 hum/hum_dev.mod.c delete mode 100644 hum/hum_dev.mod.o delete mode 100644 hum/hum_dev.o delete mode 100644 hum/modules.order create mode 100755 smoke/app create mode 100644 smoke/app.c delete mode 100755 test delete mode 100644 test.c diff --git a/app b/app index ffd39a82d23868102e946a9df71f72db51f68667..30d7d7d7ee3fe0543326c4ae6df15bf0550dac29 100755 GIT binary patch delta 239 zcmez1^ucL@1!oQ~149lkBSX$a$7I$DUIvDWi7UU09A;dneYJR5#_{JL;!N2T@_d3k zDmQOoOyTtX!^6m6!pq2TgPW0IFFymr6K+O^FWig_EIf=1B0P)?Dj<0tMur3)Murw1 zMurtUj0_AJ0u5Vu7#ZYSUk9eArKLULVPts2!^rSuaw>N_yP<)e83O~u=J(u{jI1Ai z{I6%+T*&LsA_#I70|NsCGlKw#Vknt>QE)$F&gO|i{Y-)-yo_K$1_nWf$&3sPC7TUJ emAM$FPY#urX9elZnOrHa%nDLgvU#EWc}4(|r#z|v delta 240 zcmez1^ucL@1!o2?149NcBSXeS$7I$LUIvDei7UU0eEIF@(;<}~T>tRtl9EEL#((MO zWjAkOOyTtX!NbU4z{|*RgPW0I7e52T6K+O^58R9l3_Oes0z8Zi3LtqNMur$3Mur9+ zMusIkj0_AJ0u38@7#ZYSUk9eArKLUKVPts0!^rSqaw>N_vw@!F=Fi-fjErA4=khLQ zoUFjhvRQzC1Ct=gSquye49pAyAc~=2@<qY@j2W9J3iUGy7Vt8H1sNCw874C_FcfSy f6jkP8oIE*HUY-@CGh=e4yfQ0DS;6Lo^5+==#w9(r diff --git a/app.c b/app.c index ff2f130..4c3e467 100644 --- a/app.c +++ b/app.c @@ -45,8 +45,8 @@ int main(void) memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; - server_addr.sin_port = htons(4026); - server_addr.sin_addr.s_addr = inet_addr("192.168.0.9"); + server_addr.sin_port = htons(4029); + server_addr.sin_addr.s_addr = inet_addr("192.168.10.6"); if(connect(client_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { printf("connect error\n"); diff --git a/hum/.hum_dev.ko.cmd b/hum/.hum_dev.ko.cmd deleted file mode 100644 index 22e45f3..0000000 --- a/hum/.hum_dev.ko.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/pi/Desktop/project/hum/hum_dev.ko := ld -r -EL -T ./scripts/module-common.lds -T ./arch/arm/kernel/module.lds --build-id -o /home/pi/Desktop/project/hum/hum_dev.ko /home/pi/Desktop/project/hum/hum_dev.o /home/pi/Desktop/project/hum/hum_dev.mod.o ; true diff --git a/hum/.hum_dev.mod.o.cmd b/hum/.hum_dev.mod.o.cmd deleted file mode 100644 index cadd0cb..0000000 --- a/hum/.hum_dev.mod.o.cmd +++ /dev/null @@ -1,499 +0,0 @@ -cmd_/home/pi/Desktop/project/hum/hum_dev.mod.o := gcc -Wp,-MD,/home/pi/Desktop/project/hum/.hum_dev.mod.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DKBUILD_BASENAME='"hum_dev.mod"' -DKBUILD_MODNAME='"hum_dev"' -DMODULE -c -o /home/pi/Desktop/project/hum/hum_dev.mod.o /home/pi/Desktop/project/hum/hum_dev.mod.c - -source_/home/pi/Desktop/project/hum/hum_dev.mod.o := /home/pi/Desktop/project/hum/hum_dev.mod.c - -deps_/home/pi/Desktop/project/hum/hum_dev.mod.o := \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/retpoline.h) \ - include/linux/kconfig.h \ - $(wildcard include/config/cpu/big/endian.h) \ - $(wildcard include/config/booger.h) \ - $(wildcard include/config/foo.h) \ - include/linux/compiler_types.h \ - $(wildcard include/config/have/arch/compiler/h.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/build-salt.h \ - $(wildcard include/config/build/salt.h) \ - include/linux/elfnote.h \ - include/linux/elf.h \ - arch/arm/include/asm/elf.h \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/vdso.h) \ - arch/arm/include/asm/auxvec.h \ - arch/arm/include/uapi/asm/auxvec.h \ - arch/arm/include/asm/hwcap.h \ - arch/arm/include/uapi/asm/hwcap.h \ - arch/arm/include/asm/vdso_datapage.h \ - arch/arm/include/asm/page.h \ - $(wildcard include/config/cpu/copy/v4wt.h) \ - $(wildcard include/config/cpu/copy/v4wb.h) \ - $(wildcard include/config/cpu/copy/feroceon.h) \ - $(wildcard include/config/cpu/copy/fa.h) \ - $(wildcard include/config/cpu/sa1100.h) \ - $(wildcard include/config/cpu/xscale.h) \ - $(wildcard include/config/cpu/xsc3.h) \ - $(wildcard include/config/cpu/copy/v6.h) \ - $(wildcard include/config/kuser/helpers.h) \ - $(wildcard include/config/arm/lpae.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - arch/arm/include/asm/glue.h \ - arch/arm/include/asm/pgtable-2level-types.h \ - arch/arm/include/uapi/asm/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/arm/include/generated/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - $(wildcard include/config/64bit.h) \ - include/uapi/asm-generic/bitsperlong.h \ - arch/arm/include/asm/memory.h \ - $(wildcard include/config/need/mach/memory/h.h) \ - $(wildcard include/config/page/offset.h) \ - $(wildcard include/config/thumb2/kernel.h) \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/smp.h) \ - $(wildcard include/config/dram/base.h) \ - $(wildcard include/config/dram/size.h) \ - $(wildcard include/config/xip/kernel.h) \ - $(wildcard include/config/have/tcm.h) \ - $(wildcard include/config/arm/patch/phys/virt.h) \ - $(wildcard include/config/phys/offset.h) \ - $(wildcard include/config/xip/phys/addr.h) \ - $(wildcard include/config/debug/virtual.h) \ - include/linux/compiler.h \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/stack/validation.h) \ - $(wildcard include/config/kasan.h) \ - include/linux/compiler_types.h \ - include/uapi/linux/types.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - arch/arm/include/uapi/asm/posix_types.h \ - include/uapi/asm-generic/posix_types.h \ - arch/arm/include/asm/barrier.h \ - $(wildcard include/config/cpu/32v6k.h) \ - $(wildcard include/config/cpu/fa526.h) \ - $(wildcard include/config/arm/heavy/mb.h) \ - $(wildcard include/config/arm/dma/mem/bufferable.h) \ - $(wildcard include/config/cpu/spectre.h) \ - include/asm-generic/barrier.h \ - include/linux/kasan-checks.h \ - include/linux/const.h \ - include/uapi/linux/const.h \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/sizes.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/arm/include/asm/bitops.h \ - include/linux/irqflags.h \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - include/linux/typecheck.h \ - arch/arm/include/asm/irqflags.h \ - $(wildcard include/config/cpu/v7m.h) \ - arch/arm/include/asm/ptrace.h \ - $(wildcard include/config/arm/thumb.h) \ - arch/arm/include/uapi/asm/ptrace.h \ - $(wildcard include/config/cpu/endian/be8.h) \ - include/asm-generic/irqflags.h \ - include/asm-generic/bitops/non-atomic.h \ - include/asm-generic/bitops/builtin-__fls.h \ - include/asm-generic/bitops/builtin-__ffs.h \ - include/asm-generic/bitops/builtin-fls.h \ - include/asm-generic/bitops/builtin-ffs.h \ - include/asm-generic/bitops/ffz.h \ - include/asm-generic/bitops/fls64.h \ - include/asm-generic/bitops/sched.h \ - include/asm-generic/bitops/hweight.h \ - include/asm-generic/bitops/arch_hweight.h \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/lock.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/arm/include/asm/atomic.h \ - include/linux/prefetch.h \ - arch/arm/include/asm/processor.h \ - $(wildcard include/config/have/hw/breakpoint.h) \ - $(wildcard include/config/binfmt/elf/fdpic.h) \ - $(wildcard include/config/arm/errata/754327.h) \ - arch/arm/include/asm/hw_breakpoint.h \ - arch/arm/include/asm/unified.h \ - arch/arm/include/asm/cache.h \ - $(wildcard include/config/arm/l1/cache/shift.h) \ - $(wildcard include/config/aeabi.h) \ - arch/arm/include/asm/cmpxchg.h \ - $(wildcard include/config/cpu/sa110.h) \ - $(wildcard include/config/cpu/v6.h) \ - include/asm-generic/cmpxchg-local.h \ - include/asm-generic/atomic-long.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/le.h \ - arch/arm/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/arm/include/asm/swab.h \ - arch/arm/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - arch/arm/include/asm/user.h \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/module.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/unused/symbols.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/jump/label.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/function/error/injection.h) \ - $(wildcard include/config/strict/module/rwx.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - $(wildcard include/config/page/poisoning/zero.h) \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/arch/has/refcount.h) \ - $(wildcard include/config/panic/timeout.h) \ - /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/module/rel/crcs.h) \ - $(wildcard include/config/have/arch/prel32/relocations.h) \ - $(wildcard include/config/trim/unused/ksyms.h) \ - arch/arm/include/asm/linkage.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/quiet.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk/nmi.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/strict/kernel/rwx.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - include/linux/build_bug.h \ - arch/arm/include/asm/div64.h \ - arch/arm/include/asm/compiler.h \ - include/asm-generic/div64.h \ - include/linux/stat.h \ - arch/arm/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/preempt.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/trace/preempt/toggle.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/arm/include/generated/asm/preempt.h \ - include/asm-generic/preempt.h \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/have/arch/within/stack/frames.h) \ - $(wildcard include/config/hardened/usercopy.h) \ - include/linux/bug.h \ - $(wildcard include/config/bug/on/data/corruption.h) \ - arch/arm/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - arch/arm/include/asm/opcodes.h \ - $(wildcard include/config/cpu/endian/be32.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - include/linux/restart_block.h \ - include/linux/time64.h \ - $(wildcard include/config/64bit/time.h) \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - include/uapi/linux/time.h \ - arch/arm/include/asm/thread_info.h \ - $(wildcard include/config/crunch.h) \ - $(wildcard include/config/arm/thumbee.h) \ - arch/arm/include/asm/fpstate.h \ - $(wildcard include/config/vfpv3.h) \ - $(wildcard include/config/iwmmxt.h) \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - arch/arm/include/asm/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/arm/include/asm/spinlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time32.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/umh.h \ - include/linux/gfp.h \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/vm/pgflags.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/zsmalloc.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/wait.h \ - arch/arm/include/generated/asm/current.h \ - include/asm-generic/current.h \ - include/uapi/linux/wait.h \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/nodemask.h \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - $(wildcard include/config/fortify/source.h) \ - include/uapi/linux/string.h \ - arch/arm/include/asm/string.h \ - $(wildcard include/config/bcm2835/fast/memcpy.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - $(wildcard include/config/numa/balancing.h) \ - include/generated/bounds.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/arch/has/add/pages.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - $(wildcard include/config/tree/srcu.h) \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/arm/include/generated/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/osq_lock.h \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - include/linux/err.h \ - arch/arm/include/generated/asm/rwsem.h \ - include/asm-generic/rwsem.h \ - include/linux/srcu.h \ - $(wildcard include/config/tiny/srcu.h) \ - $(wildcard include/config/srcu.h) \ - include/linux/rcupdate.h \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/arch/weak/release/acquire.h) \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/rcutree.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/wq/watchdog.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/ktime.h \ - include/linux/jiffies.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/arm/include/generated/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/arm/include/asm/timex.h \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/timekeeping32.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/rcu_segcblist.h \ - include/linux/srcutree.h \ - include/linux/rcu_node_tree.h \ - $(wildcard include/config/rcu/fanout.h) \ - $(wildcard include/config/rcu/fanout/leaf.h) \ - include/linux/completion.h \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - arch/arm/include/asm/smp.h \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - arch/arm/include/asm/percpu.h \ - include/asm-generic/percpu.h \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - $(wildcard include/config/virtualization.h) \ - $(wildcard include/config/amd/mem/encrypt.h) \ - arch/arm/include/asm/topology.h \ - $(wildcard include/config/arm/cpu/topology.h) \ - include/linux/arch_topology.h \ - include/asm-generic/topology.h \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/linux/rbtree.h \ - include/uapi/linux/sysctl.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/idr.h \ - include/linux/radix-tree.h \ - $(wildcard include/config/radix/tree/multiorder.h) \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/refcount.h \ - $(wildcard include/config/refcount/full.h) \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/jump_label.h \ - arch/arm/include/asm/jump_label.h \ - include/linux/rbtree_latch.h \ - include/linux/error-injection.h \ - include/asm-generic/error-injection.h \ - include/linux/tracepoint-defs.h \ - include/linux/static_key.h \ - arch/arm/include/asm/module.h \ - $(wildcard include/config/arm/unwind.h) \ - $(wildcard include/config/arm/module/plts.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/vermagic.h \ - include/generated/utsrelease.h \ - -/home/pi/Desktop/project/hum/hum_dev.mod.o: $(deps_/home/pi/Desktop/project/hum/hum_dev.mod.o) - -$(deps_/home/pi/Desktop/project/hum/hum_dev.mod.o): diff --git a/hum/.hum_dev.o.cmd b/hum/.hum_dev.o.cmd deleted file mode 100644 index 01a0f2e..0000000 --- a/hum/.hum_dev.o.cmd +++ /dev/null @@ -1,720 +0,0 @@ -cmd_/home/pi/Desktop/project/hum/hum_dev.o := gcc -Wp,-MD,/home/pi/Desktop/project/hum/.hum_dev.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/8/include -I./arch/arm/include -I./arch/arm/include/generated -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -DMODULE -DKBUILD_BASENAME='"hum_dev"' -DKBUILD_MODNAME='"hum_dev"' -c -o /home/pi/Desktop/project/hum/.tmp_hum_dev.o /home/pi/Desktop/project/hum/hum_dev.c - -source_/home/pi/Desktop/project/hum/hum_dev.o := /home/pi/Desktop/project/hum/hum_dev.c - -deps_/home/pi/Desktop/project/hum/hum_dev.o := \ - include/linux/kconfig.h \ - $(wildcard include/config/cpu/big/endian.h) \ - $(wildcard include/config/booger.h) \ - $(wildcard include/config/foo.h) \ - include/linux/compiler_types.h \ - $(wildcard include/config/have/arch/compiler/h.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/retpoline.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/init.h \ - $(wildcard include/config/have/arch/prel32/relocations.h) \ - $(wildcard include/config/strict/kernel/rwx.h) \ - $(wildcard include/config/strict/module/rwx.h) \ - include/linux/compiler.h \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/stack/validation.h) \ - $(wildcard include/config/kasan.h) \ - include/linux/compiler_types.h \ - include/uapi/linux/types.h \ - arch/arm/include/uapi/asm/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/arm/include/generated/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - $(wildcard include/config/64bit.h) \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - arch/arm/include/uapi/asm/posix_types.h \ - include/uapi/asm-generic/posix_types.h \ - arch/arm/include/asm/barrier.h \ - $(wildcard include/config/cpu/32v6k.h) \ - $(wildcard include/config/thumb2/kernel.h) \ - $(wildcard include/config/cpu/xsc3.h) \ - $(wildcard include/config/cpu/fa526.h) \ - $(wildcard include/config/arm/heavy/mb.h) \ - $(wildcard include/config/arm/dma/mem/bufferable.h) \ - $(wildcard include/config/smp.h) \ - $(wildcard include/config/cpu/spectre.h) \ - include/asm-generic/barrier.h \ - include/linux/kasan-checks.h \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/arch/has/refcount.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/module/rel/crcs.h) \ - $(wildcard include/config/trim/unused/ksyms.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/arm/include/asm/linkage.h \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/arm/include/asm/bitops.h \ - include/linux/irqflags.h \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - include/linux/typecheck.h \ - arch/arm/include/asm/irqflags.h \ - $(wildcard include/config/cpu/v7m.h) \ - arch/arm/include/asm/ptrace.h \ - $(wildcard include/config/arm/thumb.h) \ - arch/arm/include/uapi/asm/ptrace.h \ - $(wildcard include/config/cpu/endian/be8.h) \ - arch/arm/include/asm/hwcap.h \ - arch/arm/include/uapi/asm/hwcap.h \ - include/asm-generic/irqflags.h \ - include/asm-generic/bitops/non-atomic.h \ - include/asm-generic/bitops/builtin-__fls.h \ - include/asm-generic/bitops/builtin-__ffs.h \ - include/asm-generic/bitops/builtin-fls.h \ - include/asm-generic/bitops/builtin-ffs.h \ - include/asm-generic/bitops/ffz.h \ - include/asm-generic/bitops/fls64.h \ - include/asm-generic/bitops/sched.h \ - include/asm-generic/bitops/hweight.h \ - include/asm-generic/bitops/arch_hweight.h \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/lock.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/arm/include/asm/atomic.h \ - $(wildcard include/config/arm/lpae.h) \ - include/linux/prefetch.h \ - arch/arm/include/asm/processor.h \ - $(wildcard include/config/have/hw/breakpoint.h) \ - $(wildcard include/config/binfmt/elf/fdpic.h) \ - $(wildcard include/config/arm/errata/754327.h) \ - arch/arm/include/asm/hw_breakpoint.h \ - arch/arm/include/asm/unified.h \ - arch/arm/include/asm/cache.h \ - $(wildcard include/config/arm/l1/cache/shift.h) \ - $(wildcard include/config/aeabi.h) \ - arch/arm/include/asm/cmpxchg.h \ - $(wildcard include/config/cpu/sa1100.h) \ - $(wildcard include/config/cpu/sa110.h) \ - $(wildcard include/config/cpu/v6.h) \ - include/asm-generic/cmpxchg-local.h \ - include/asm-generic/atomic-long.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/le.h \ - arch/arm/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/arm/include/asm/swab.h \ - arch/arm/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/default.h) \ - $(wildcard include/config/console/loglevel/quiet.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk/nmi.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - include/linux/build_bug.h \ - arch/arm/include/asm/div64.h \ - arch/arm/include/asm/compiler.h \ - include/asm-generic/div64.h \ - include/linux/module.h \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/jump/label.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/function/error/injection.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - $(wildcard include/config/page/poisoning/zero.h) \ - include/linux/const.h \ - include/uapi/linux/const.h \ - include/linux/stat.h \ - arch/arm/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/preempt.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/trace/preempt/toggle.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/arm/include/generated/asm/preempt.h \ - include/asm-generic/preempt.h \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/have/arch/within/stack/frames.h) \ - $(wildcard include/config/hardened/usercopy.h) \ - include/linux/bug.h \ - $(wildcard include/config/bug/on/data/corruption.h) \ - arch/arm/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - arch/arm/include/asm/opcodes.h \ - $(wildcard include/config/cpu/endian/be32.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - include/linux/restart_block.h \ - include/linux/time64.h \ - $(wildcard include/config/64bit/time.h) \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - include/uapi/linux/time.h \ - arch/arm/include/asm/thread_info.h \ - $(wildcard include/config/crunch.h) \ - $(wildcard include/config/arm/thumbee.h) \ - arch/arm/include/asm/fpstate.h \ - $(wildcard include/config/vfpv3.h) \ - $(wildcard include/config/iwmmxt.h) \ - arch/arm/include/asm/page.h \ - $(wildcard include/config/cpu/copy/v4wt.h) \ - $(wildcard include/config/cpu/copy/v4wb.h) \ - $(wildcard include/config/cpu/copy/feroceon.h) \ - $(wildcard include/config/cpu/copy/fa.h) \ - $(wildcard include/config/cpu/xscale.h) \ - $(wildcard include/config/cpu/copy/v6.h) \ - $(wildcard include/config/kuser/helpers.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - arch/arm/include/asm/glue.h \ - arch/arm/include/asm/pgtable-2level-types.h \ - arch/arm/include/asm/memory.h \ - $(wildcard include/config/need/mach/memory/h.h) \ - $(wildcard include/config/page/offset.h) \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/dram/base.h) \ - $(wildcard include/config/dram/size.h) \ - $(wildcard include/config/xip/kernel.h) \ - $(wildcard include/config/have/tcm.h) \ - $(wildcard include/config/arm/patch/phys/virt.h) \ - $(wildcard include/config/phys/offset.h) \ - $(wildcard include/config/xip/phys/addr.h) \ - $(wildcard include/config/debug/virtual.h) \ - include/linux/sizes.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - arch/arm/include/asm/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/arm/include/asm/spinlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time32.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/umh.h \ - include/linux/gfp.h \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/vm/pgflags.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/zsmalloc.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/wait.h \ - arch/arm/include/generated/asm/current.h \ - include/asm-generic/current.h \ - include/uapi/linux/wait.h \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/nodemask.h \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - $(wildcard include/config/fortify/source.h) \ - include/uapi/linux/string.h \ - arch/arm/include/asm/string.h \ - $(wildcard include/config/bcm2835/fast/memcpy.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - $(wildcard include/config/numa/balancing.h) \ - include/generated/bounds.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/arch/has/add/pages.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - $(wildcard include/config/tree/srcu.h) \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/arm/include/generated/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - $(wildcard include/config/debug/mutexes.h) \ - include/linux/osq_lock.h \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - include/linux/err.h \ - arch/arm/include/generated/asm/rwsem.h \ - include/asm-generic/rwsem.h \ - include/linux/srcu.h \ - $(wildcard include/config/tiny/srcu.h) \ - $(wildcard include/config/srcu.h) \ - include/linux/rcupdate.h \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/arch/weak/release/acquire.h) \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/rcutree.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/wq/watchdog.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/ktime.h \ - include/linux/jiffies.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/arm/include/generated/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/arm/include/asm/timex.h \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/timekeeping32.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/rcu_segcblist.h \ - include/linux/srcutree.h \ - include/linux/rcu_node_tree.h \ - $(wildcard include/config/rcu/fanout.h) \ - $(wildcard include/config/rcu/fanout/leaf.h) \ - include/linux/completion.h \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - arch/arm/include/asm/smp.h \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - arch/arm/include/asm/percpu.h \ - include/asm-generic/percpu.h \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - $(wildcard include/config/virtualization.h) \ - $(wildcard include/config/amd/mem/encrypt.h) \ - arch/arm/include/asm/topology.h \ - $(wildcard include/config/arm/cpu/topology.h) \ - include/linux/arch_topology.h \ - include/asm-generic/topology.h \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/linux/rbtree.h \ - include/uapi/linux/sysctl.h \ - include/linux/elf.h \ - arch/arm/include/asm/elf.h \ - $(wildcard include/config/vdso.h) \ - arch/arm/include/asm/auxvec.h \ - arch/arm/include/uapi/asm/auxvec.h \ - arch/arm/include/asm/vdso_datapage.h \ - arch/arm/include/asm/user.h \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/idr.h \ - include/linux/radix-tree.h \ - $(wildcard include/config/radix/tree/multiorder.h) \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/refcount.h \ - $(wildcard include/config/refcount/full.h) \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/jump_label.h \ - arch/arm/include/asm/jump_label.h \ - include/linux/rbtree_latch.h \ - include/linux/error-injection.h \ - include/asm-generic/error-injection.h \ - include/linux/tracepoint-defs.h \ - include/linux/static_key.h \ - arch/arm/include/asm/module.h \ - $(wildcard include/config/arm/unwind.h) \ - $(wildcard include/config/arm/module/plts.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/security.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/fs/encryption.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/fs/dax.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/mandatory/file/locking.h) \ - $(wildcard include/config/migration.h) \ - include/linux/wait_bit.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/dcache.h \ - include/linux/rculist.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/bit_spinlock.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/stringhash.h \ - $(wildcard include/config/dcache/word/access.h) \ - include/linux/hash.h \ - $(wildcard include/config/have/arch/hash.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - $(wildcard include/config/memcg/kmem.h) \ - include/linux/shrinker.h \ - include/linux/xarray.h \ - include/linux/pid.h \ - include/linux/mm_types.h \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/have/arch/compat/mmap/bases.h) \ - $(wildcard include/config/membarrier.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/hmm.h) \ - include/linux/mm_types_task.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/arm/include/asm/mmu.h \ - $(wildcard include/config/cpu/has/asid.h) \ - include/linux/capability.h \ - include/uapi/linux/capability.h \ - include/linux/semaphore.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/arm/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcuwait.h \ - include/linux/rcu_sync.h \ - include/linux/delayed_call.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/errseq.h \ - include/linux/ioprio.h \ - include/linux/sched.h \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/stackprotector.h) \ - $(wildcard include/config/arch/has/scaled/cputime.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/posix/timers.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/ubsan.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/intel/rdt.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/compat.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/rseq.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/kcov.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/vmap/stack.h) \ - $(wildcard include/config/arch/task/struct/on/stack.h) \ - $(wildcard include/config/debug/rseq.h) \ - include/uapi/linux/sched.h \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/rhashtable-types.h \ - include/uapi/linux/ipc.h \ - arch/arm/include/generated/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/arm/include/generated/uapi/asm/sembuf.h \ - include/uapi/asm-generic/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - include/uapi/asm-generic/hugetlb_encode.h \ - arch/arm/include/generated/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/arm/include/asm/shmparam.h \ - include/linux/kcov.h \ - include/uapi/linux/kcov.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/arm/include/generated/asm/seccomp.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - arch/arm/include/asm/unistd.h \ - $(wildcard include/config/oabi/compat.h) \ - arch/arm/include/uapi/asm/unistd.h \ - arch/arm/include/generated/uapi/asm/unistd-eabi.h \ - arch/arm/include/generated/uapi/asm/unistd-common.h \ - arch/arm/include/generated/asm/unistd-nr.h \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/arm/include/generated/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/latencytop.h \ - include/linux/sched/prio.h \ - include/linux/signal_types.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/arm/include/asm/signal.h \ - arch/arm/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/arm/include/uapi/asm/sigcontext.h \ - arch/arm/include/generated/uapi/asm/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/uapi/linux/rseq.h \ - include/linux/sched/rt.h \ - include/linux/iocontext.h \ - include/uapi/linux/fs.h \ - include/uapi/linux/limits.h \ - include/uapi/linux/ioctl.h \ - arch/arm/include/generated/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/linux/percpu_counter.h \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/uaccess.h \ - arch/arm/include/asm/uaccess.h \ - $(wildcard include/config/cpu/sw/domain/pan.h) \ - $(wildcard include/config/cpu/use/domains.h) \ - $(wildcard include/config/uaccess/with/memcpy.h) \ - arch/arm/include/asm/domain.h \ - $(wildcard include/config/io/36.h) \ - $(wildcard include/config/cpu/cp15/mmu.h) \ - arch/arm/include/generated/asm/extable.h \ - include/asm-generic/extable.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/have/hardened/usercopy/allocator.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/overflow.h \ - include/linux/kasan.h \ - include/linux/delay.h \ - arch/arm/include/asm/delay.h \ - arch/arm/include/asm/mach/map.h \ - $(wildcard include/config/debug/ll.h) \ - arch/arm/include/asm/io.h \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/need/mach/io/h.h) \ - $(wildcard include/config/pcmcia/soc/common.h) \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/pccard.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen.h) \ - $(wildcard include/config/xen/pvh.h) \ - $(wildcard include/config/xen/dom0.h) \ - include/asm-generic/io.h \ - $(wildcard include/config/generic/iomap.h) \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/virt/to/bus.h) \ - include/linux/logic_pio.h \ - $(wildcard include/config/indirect/pio.h) \ - include/linux/fwnode.h \ - include/linux/vmalloc.h \ - -/home/pi/Desktop/project/hum/hum_dev.o: $(deps_/home/pi/Desktop/project/hum/hum_dev.o) - -$(deps_/home/pi/Desktop/project/hum/hum_dev.o): diff --git a/hum/.tmp_versions/hum_dev.mod b/hum/.tmp_versions/hum_dev.mod deleted file mode 100644 index 75a71fd..0000000 --- a/hum/.tmp_versions/hum_dev.mod +++ /dev/null @@ -1,3 +0,0 @@ -/home/pi/Desktop/project/hum/hum_dev.ko -/home/pi/Desktop/project/hum/hum_dev.o - diff --git a/hum/Makefile b/hum/Makefile deleted file mode 100644 index b93d16b..0000000 --- a/hum/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -KERNEL_VER := $(shell uname -r) -KERNEL_DIR = '/lib/modules/$(KERNEL_VER)/build' - -obj-m := hum_dev.o - -PWD := $(shell pwd) - -all : - make -C $(KERNEL_DIR) M=$(PWD) modules - -clean : - make -C $(KERNEL_DIR) M=$(PWD) clean - -in : - sudo insmod hydro_dev.ko - sudo mknod -m 666 /dev/hydro c 505 0 - -out : - sudo rmmod hydro_dev - -in2 : - sudo insmod hydro_dev.ko diff --git a/hum/Module.symvers b/hum/Module.symvers deleted file mode 100644 index e69de29..0000000 diff --git a/hum/hum_dev.c b/hum/hum_dev.c deleted file mode 100644 index 147cea2..0000000 --- a/hum/hum_dev.c +++ /dev/null @@ -1,161 +0,0 @@ -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/fs.h> -#include <linux/uaccess.h> -#include <linux/slab.h> -#include <linux/delay.h> - -#include <asm/mach/map.h> -#include <asm/uaccess.h> - -typedef struct{ - unsigned int hydro_integer; - unsigned int hydro_float; - unsigned int temp_integer; - unsigned int temp_float; -}Data; - -#define HIGH 1 -#define LOW 0 - -#define HYDRO_MAJOR_NUMBER 505 -#define HYDRO_DEV_NAME "hydro_dev" - -#define IOCTL_HYDRO_MAGIC_NUMBER 'h' -#define IOCTL_CMD_HYDRO _IOR(IOCTL_HYDRO_MAGIC_NUMBER, 0, Data) - -#define GPIO_BASE_ADDRESS 0x3F200000 - -#define GPFSEL0 0x00 -#define GPFSEL1 0x04 -#define GPSET1 0x1C -#define GPCLR1 0x28 -#define GPLEV1 0x34 - -static void __iomem* gpio_base; - -volatile unsigned int* gpsel0; -volatile unsigned int* gpsel1; -volatile unsigned int* gpset1; -volatile unsigned int* gpclr1; -volatile unsigned int* gplev1; - -int hydro_open(struct inode * inode, struct file * filp){ - printk(KERN_ALERT "\nhumidity driver open\n"); - gpio_base = ioremap(GPIO_BASE_ADDRESS, 0xFF); - - gpsel0 = (volatile unsigned int*)(gpio_base + GPFSEL0); - gpsel1 = (volatile unsigned int*)(gpio_base + GPFSEL1); - gpset1 = (volatile unsigned int*)(gpio_base + GPSET1); - gpclr1 = (volatile unsigned int*)(gpio_base + GPCLR1); - gplev1 = (volatile unsigned int*)(gpio_base + GPLEV1); -/* - *gpsel0 |= (1<<26); - *gpsel0 |= (1<<29); - *gpsel1 |= (1<<2); - *gpsel1 |= (1<<5);*/ - - return 0; -} - -int hydro_release(struct inode * inode, struct file * filp) { - printk(KERN_ALERT "humidity driver closed\n\n"); - iounmap((void *)gpio_base); - return 0; -} - - -long hydro_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) -{ - Data data; - int result[5] = {0}; - int index = 0; - int pre_data = HIGH; - int counter = 0; - int i = 0; - switch (cmd){ - case IOCTL_CMD_HYDRO: - - *gpsel0 |= (1 << 12); //GPIO 4 SET OUTPUT MODE - - *gpset1 |= (1 << 4); //GPIO 4 SET HIGH - mdelay(800); //SLEEP FOR 800 miliseconds to synchronize bits from loop - - *gpclr1 |= (1 << 4); //GPIO 4 SET LOW - mdelay(18); //SLEEP FOR 18 miliseconds - - *gpset1 |= (1 << 4); //GPIO 4 SET HIGH - udelay(30); //SLEEP FOR 30 microseconds - - *gpsel0 &= ~(1 << 12); //GPIO 4 SET INPUT MODE - - //except first 3(wait, response, ready) signals - for(i = 0; i < 3; i++){ - if(((*gplev1 >> 4) & 0x01) == LOW){ - while(((*gplev1 >> 4) & 0x01) == LOW){} continue; - } - if(((*gplev1 >> 4) & 0x01) == HIGH){ - while(((*gplev1 >> 4) & 0x01) == HIGH){} continue; - } - } - //interpret '0' and '1' bits - while(index < 40){ - if(((*gplev1 >> 4) & 0x01) == LOW) continue; - counter = 0; - while(((*gplev1 >> 4) & 0x01) == HIGH){ - counter++; - udelay(1); - } - if(counter > 80) break; - result[index / 8] <<= 1; - if(counter > 28) result[index / 8] |= 1; - index++; - } - //printk(KERN_INFO "data[0]: %x data[1]: %x data[2]: %x data[3]: %x data[4]: %x\n", data[0], data[1], data[2], data[3], data[4]); - if(result[4] != ((result[0] + result[1] + result[2] + result[3]) & 0xFF)) - break; - data.hydro_integer = result[0]; - data.hydro_float = result[1]; - data.temp_integer = result[2]; - data.temp_float = result[3]; - //printk(KERN_INFO "humidity: %d.%d%% temperature: %d.%d%%\n", info.humidity_integer, info.humidity_float, info.temperature_integer, info.temperature_float); - - copy_to_user((void*)arg, (void*)&data, sizeof(data)); - printk(KERN_ALERT "hydro done\n"); - break; - - default : - printk(KERN_ALERT "ioctl : command error\n"); - } - - return 0; -} - -static struct file_operations hydro_fops = { - .owner = THIS_MODULE, - .open = hydro_open, - .release = hydro_release, - .unlocked_ioctl = hydro_ioctl -}; - -int __init hydro_init (void) { - if(register_chrdev(HYDRO_MAJOR_NUMBER, HYDRO_DEV_NAME, &hydro_fops) < 0) - printk(KERN_ALERT "hydro driver initalization failed\n"); - else - printk(KERN_ALERT "hydro driver initalization succeed\n"); - return 0; -} - -void __exit hydro_exit(void){ - unregister_chrdev(HYDRO_MAJOR_NUMBER, HYDRO_DEV_NAME); - printk(KERN_ALERT "hydro driver exit"); -} - -module_init(hydro_init); -module_exit(hydro_exit); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("joreka"); -MODULE_DESCRIPTION("hydro_dev"); - diff --git a/hum/hum_dev.ko b/hum/hum_dev.ko deleted file mode 100644 index 53a728e839171e3f91b8fc5d3620f0317d5263e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7948 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 YkT__R23g%3F$RXMFiA*W1Sw+x02=Gct^fc4 diff --git a/hum/hum_dev.mod.c b/hum/hum_dev.mod.c deleted file mode 100644 index 581819d..0000000 --- a/hum/hum_dev.mod.c +++ /dev/null @@ -1,48 +0,0 @@ -#include <linux/build-salt.h> -#include <linux/module.h> -#include <linux/vermagic.h> -#include <linux/compiler.h> - -BUILD_SALT; - -MODULE_INFO(vermagic, VERMAGIC_STRING); -MODULE_INFO(name, KBUILD_MODNAME); - -__visible struct module __this_module -__attribute__((section(".gnu.linkonce.this_module"))) = { - .name = KBUILD_MODNAME, - .init = init_module, -#ifdef CONFIG_MODULE_UNLOAD - .exit = cleanup_module, -#endif - .arch = MODULE_ARCH_INIT, -}; - -#ifdef CONFIG_RETPOLINE -MODULE_INFO(retpoline, "Y"); -#endif - -static const struct modversion_info ____versions[] -__used -__attribute__((section("__versions"))) = { - { 0xad1a7def, "module_layout" }, - { 0x6bc3fbc0, "__unregister_chrdev" }, - { 0xcfc78319, "__register_chrdev" }, - { 0xdb7305a1, "__stack_chk_fail" }, - { 0xf4fa543b, "arm_copy_to_user" }, - { 0x8e865d3c, "arm_delay_ops" }, - { 0x8f678b07, "__stack_chk_guard" }, - { 0xedc03953, "iounmap" }, - { 0x2e5810c6, "__aeabi_unwind_cpp_pr1" }, - { 0xe97c4103, "ioremap" }, - { 0x7c32d0f0, "printk" }, - { 0xb1ad28e0, "__gnu_mcount_nc" }, -}; - -static const char __module_depends[] -__used -__attribute__((section(".modinfo"))) = -"depends="; - - -MODULE_INFO(srcversion, "848B380E4218A5ABA3C9C06"); diff --git a/hum/hum_dev.mod.o b/hum/hum_dev.mod.o deleted file mode 100644 index 21c79f9107040c7496e92255f2616d11948d53b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2968 zcmb<-^>JflWMqH=Mg|QA1doBiffFplY67M-82B0Zz$|P;Mrm$*N@^K4sZp`f5WpG& z#YM?wsYS(^`FXY$CKgV{76z^+MurxSrjAaI#?F?`24)NlDX9gic`3!V40(yUskX3G zR+d_no0y)NY-^%tXsKsuu3KiVtq|-RppcuN5?`8^lb@IZVnR(XR&WgREi+drFe<Z9 zU|?WiV_<-!b4CURpUk|{3aIPe*GjF;%}*)KNsZ4*tjsShfr=AL9r%4XJ3hWNuP8M= zv$!O+C_Xu(h?G1b*?jzbd_1|j85kC_7T=DKFD^+;&W=yc$c|4-%*-Ly?I3m5A-}#P z7Ujk#=NDAQm*mHn7N-`0#EHc=v2A@I{VAzAiIwsB1;xZ_gsNljPVYx{e|l+RQ3_O! z7%JHEz}w9H(!AWn0%DY7s5vGOp%)*Yn3|ZB8DE-Lo|%^tpIlH7Ur=O-p%kkCvt!N6 z%>1HMa_#?c!KkL7C^N4l8>{gI1s`av-54LAo>v;5o19;oR}!C>Oi&Ms0(WO;D+P_9 z#NvXa%)~qe3q4~!16?!iqJm6AO$d*{(SU)00USgOjA{%F46Nq5jtp#E?2a6aoJ?Fy zLQEozqKx9q5{#0JQcQA8O33vI%r0ax7KV@iVd5Z~8Im(WOfY6<U;@)Hf|-FC#st&M z3@i-%U>1yEfib`|GXoo%JR5@$ScZW?8C(vqF=#U|FsLvvFo3E%Mg}$p8wLgjT?PgQ zUZ}i30|SE<0|QtbBoEaNrkEMn(adLONCV3-Fi3#)vqO0hikX1}O+5!g9z==(<TXYH z4j2ziGc$03X&Au_b|s7l(!$M94dps8F)#=+urPE&`5;Pwfq`KvhyleQJ_EEE)yvIK z(Mx7fNnwbO5B2j540Vn7bcsil%7#V^@$t|C5n2wTs00<shK49Yu!7mpfFV9Fza%x@ zj3GWgJ|0#OGsMT2WMmdY4Q0s8%PfJhlXFrN^GXX~+#3uG3{2t-3@l6x3{0Sa)GMyc zElEsb&?_z}g3uW-R!M3_34>lrVo4%{UQ%%}gI-Z;j$V3Rsa{TIUUq(7a;hG(r66Bt z=B4E`=z$!l2dMy%oT!(apPQSSR|1uH_Y2hp7pV+-jzPY9i6tdPnMtK3sU#F`(%^Ie zsdqrp0BKKwSP%@$4~kHAuoR9<ojL;pIF%4m2g<4-vtjBS7#J8pX#`>`0|ST;V(UQD zK8!zygMk5*PIwp?7(lrRgh8p&3+g^tj%;9JU_fs1fz*M_3ua(o0Hu1Ex*trCya18| zVVJsjH1h;N4h3P5BB<RUW)@T($Uh*y02?H~g4iGo@*@a?q69>P#6Z{tRMCSNPz;l6 zW&q_I26!a_Qioi`!_<Ljm>)n!WUw(XOkjkR3t~|Bfx?LsVjf5d82?~rU|0fXK?smJ UAeJDSx-}dO43j|;Pz+NC0DMducmMzZ diff --git a/hum/hum_dev.o b/hum/hum_dev.o deleted file mode 100644 index efbc29efa2a0179089ca17cd6ca52333c6592f29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7176 zcmb<-^>JflWMqH=Mg|QA1doBCLkuj#Y67M-7?c>~8F&vYc=+MI?n{;pK96)R_&#EJ zp!@XS|NpNU8W<ikG&nq#vR?35z`)}%1H+7`%nX4KnI<fF$Y8MGv5NusQv(L>rw#_( zPi+jipIR7jKQ%Gnema4HL5iV(;W0yj!()a3hQ|rnJdarvraxr}aCm$s$KkP&--5>s z29usLS~WjrFlc(p1CleC^i;qA!e=p<`jm}f!9(N!`VSc$LLUA4|6fW#Vfs^$IUxN) z4iNqL)Pu}C!OQYEiNWD9^8!ruAhW@40=wfd*c~DU)1NXZOnxfBAoN&;fq@Ig)?i?e zVq6gQ===ZwQg_l=9y2F6Jch~r`Tw7b!2qO3_^}yCkHdn;$nFQ3$>`AX2&M*PMgT*| zV<`rPQ>P3UJk(L}ek8*X@|fAM>4AiT@Y5!R1rHe&nhr}SFh6Bn(Dg`zA?h(d0|OVx zoQMDazk=C&>;Hc#82jh{|6JFQ<Sv8U1og+y|No`V|NsB$0*m)UmjlvIEfl1mG8ptc zFnJ*Tl+mF10h2-VgJOgC&zKqF9`Z6Ua2bH)89?C$itC_<G7Jn-8W+4DeON#D1<bw3 zZUwpX%K!hbcnuajthYV<*xumq;}5Lf4?_-cKjko({M18%`>BA!%ty=$mkbyT78o-y z1V3hGV36WuSnyClVZq}N0q;lPw8p^jn1R9JF^GNl|NmDYngL1d2FQQlG&^tv?|}sm z8E!!G2|SM=x$(cig2xOD3mz-*JA?hfV8HO0!NB1$i$cRAnF9@vGz1zRaVRuDWngH2 zYNF8ah=l>fUhtUbK=V@pf##<oAh{KDUl6hfW-bH6WJo>*#n+0tFPvsGHg4F^&;|-2 zWHyKo!Wj$<3_J`B44z<h|H0}&;vkG{CkJvF0P>Rp$R7-k85A7A{$Wt)efpD;;W4Am z0*F5u0v<CkFl=UEU|7t+;INs2!C^5Z{uVsux#0bX0nKe7`#>1kPLNp)0t+64%!T<6 zVg@2z;4&vAwK%ybv!En1KhHL!GNmX#J|(q`A+fY1BfrQtE59f;JCPwLGdVS{IMvoY zz=wg+kSn7!H!~%(q*5WJD6=fJNFl!<HIEDACPqVaspOpe;?xu_E(QihL$K)zDfxM+ zAjOP^nfb{jISN(^$@#gtiFqjssYONkMIb2#uu8Bykn}<9%FN3wNzBQtN(4DrAuTa8 zCp87E2W~z#b;YI0$*B;9XzEfcGD{d3+?}1R6f}Yoiwlx66Y~@-^o;ckbj`Gj3Nj5f zAv^|0Jq8Ab#MH#3Oa?|31_lOJb6rOUHZFEY4n|HUAtn(<QATlQ2}VgqDJD54CFEKI z6fz7b^#}{Y$Nvyf2+52h%fP_QzzmUqlFSUOP!@z@W?*CBhA^Qd8v`Gd1)(Gvgdq$l ziLRf6K^7_lp*SEElw@Y$M3d)aP+(wSkb%lGFi4`=&&Z(4z`$UEB(KH5z~F(zhcg*K z{^Le7AJsR^3_NJ^pqz&=fti61&3--xeS|dF21^D8h7`D%B!e9T14984-<g4dVFnT( z&IIcgK(k)}S(<^FK@d$|5KUef&3(e)us8r$B?)JN7|aZ!Xy%E6gyEQ(K@3eEozKkR z3sv2~07`4jXzE!RBB1gtV0rZPAi<CXl?OF(7#SoOY8V(8Kx|OD0`Vs@Fff49Jt!tX ze5i6T#mpdyW*@r$q`~T71T%vaj0vWh8DtoigINp=pmJ7-fsJ7kln<gnp??U(fMO8; zB$N%JK>Uj!1{8z%FBl+Zfzl+%yl+rB5CxL|2VyWVFsxu=U=U(pWZ*)|vLJaGG`<!Z z-x`hY1LY?$fXw4#2#4}P)_}~*gz{nXrBFVoEh)qx%+LVk!_-fK@?r9e85tNv7#J8p z@h8Z@%CL%&fdOPLjK7f)Qa{1?I~W-lK)D*m-_Hoq3*#Synh&#&A)_=GROIR<GpHmo z==nGsFzER>`Z;^}2N^J^q<};WL4*;AFow&4#Y{kArXa!$M3_Sh@U;AbVutjB%>4MI z#Nt$j`1nvi&%jXEcu$vjq*}+&2t@``^B5YU2tq3$Lj$PEpc;oEK0ZCKG(I;uzcjBT zJ};S}peQr1B%2{KzbG{~v49~y9$Z?-m*$mc=B30Z7Zk)76d6JdC`!#q1-U6Rzcde| z7*gYaYb1vF_~Mep<m~w5jO_UI(!`<^hQuOJ(Bvdm#)EtW;w9%7RK}O&$CnnT7NKYW z)ksh~Kvfk(e0))AdS-D+YEgW0MiHoL1qsLJ=BJeAq(T*f>!A4f(mZsf$vLTsd8Gv~ z)#(K}sbz)?=>^F-MIfp;wFE-tKq&);`1q2H%wm`ZP<oLuVPKG8U|`U;hLqnr)(i|G zAU+2JxJ=ODU|@&=@ogaaMaPDLp@E5kLB^JWp@oToL7Sg}p@WHmL5H7#p$8;x%D^xM zMB6bi%mB#?Ffhyk$qO(rEC7j{f>IO%1Ctk|ykN3oU;w3ICSwK$8wLgjCJRWq1-T34 zK5cf0`*heL?vpWPV9){8HD(M91|WBFK=gy$SpgC^VE~s++Pn-5pt4Sfmw}-LByP&U z&;eE7!@$4*Qa=SG4yp(k7#Or*MV>h%A82tx@&`y9RHlLWAeU<~fk*}h2ADcQNWKHP z7gYagi!*@hLTw3%|8&F|7&JikNkHm983zUi2ar1?85mqZv=pQs)RAOh@ByilVqgdW zxeFRjTCk!XW}h@9JV54y?9-8e*eBx*u}@nOYM&xBoM7h2qq$p&fq_A<xH7jSF^NI1 zxTFX|XTVrRsX2NjsTCy*dLULxVo4%{UQ%%}gbR|;E6vNv%udazWYBXA^3_YNC`n8L z>p+qKX@y8;rc|IyLL|V}qNsyd0m=qo9mvKb38HAxLz4jI7!1uwf~cC2By#gpGV{{% z8T5+sL0$%hi=mzggC3|2nwnR_pqH0llB(zK7pe;`10ZfoEGa3<Oe!r&Ertd$F%&2| zKt(JYR52(Ifa)437hH~m*r1w`lL3-uK>Q0l3=E)jE(@-wA!!v<j%z~su$JK+CP?}R z=>cI-xelU1?J#8XJa{4L2V@>dFGwB8JWzWHM1#aY`eK+N=?=sOVURiy9SF4-<`0m% z1t1A1hN%Pj582)fUPyZjWG_fBNFB&Ncc^)=Z1x9-y`Z)mBLhQ06Vx6N7D%}PG7BUG zG7m(9>QiKUZ}39$2gqKKI7l7H-dZ$!RahYPCCCgA2B`zlpt1wmUIP|LIRT1GkUUHs zsH_2*56bHxaZm#sRL+9z1(hctbs&2;K<$OO+k%CG0pw<|9%y|IVozsaU_drcf)7$Y zgUkc9!C>YsgPI2mzZp3Eu^*xi9)3%p{s5T;vJYe)h~AB6Zvh`99f0fwwQ51?K>m0O zF^>V}k2Nfiav5X>2!qst=qqUEb?`yTagceSJ_$%2$UIP|7Zj#2e>}k9k3SH5;r@67 z^#{l-kbNNYK=cnZdv_rD1JsTMsRP+7$Ovj5GcdsH{lWrqAIJ<42Du4DOF`8cfjFSH zFDnBB$Zt?CIRApwYC_e4>MD@j4^~Jy4Pt{ZNDT-ZLDhl8Kv)JAkRT4kk6@M)BdC9b z=&FF!f$}O?5=kA%Oqd@)az1Pf3>#P&7~~ij7>uFm3e-LXr72h*2dVqR#lUa{q#49P zG7l8j$m&!?85okWs2i<QDnNA|73&mG1so4+$L8cGLnDR=YP60Stz$rC+GrgEDZ@wW z7)ad)D>^`R2aFA(Va54iuVccXbtSBRyCDr}`+@ub!l1ewgo79%Z6=Ty2)~d<v~?Ar mbs#8zfclxBx)9W^2C+eEnV2ALYbI7m`wm2d+HFjt3=9BMWo<VA diff --git a/hum/modules.order b/hum/modules.order deleted file mode 100644 index 19d9790..0000000 --- a/hum/modules.order +++ /dev/null @@ -1 +0,0 @@ -kernel//home/pi/Desktop/project/hum/hum_dev.ko diff --git a/hydro/hydro_dev.c b/hydro/hydro_dev.c index 5c5efa5..c220994 100644 --- a/hydro/hydro_dev.c +++ b/hydro/hydro_dev.c @@ -1,157 +1,153 @@ -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/fs.h> -#include <linux/uaccess.h> -#include <linux/slab.h> +#include <linux/init.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/fs.h> +#include <linux/uaccess.h> +#include <linux/slab.h> #include <linux/delay.h> -#include <asm/mach/map.h> -#include <asm/io.h> -#include <asm/uaccess.h> +#include <asm/mach/map.h> +#include <asm/uaccess.h> -typedef struct { - unsigned int tempi; - unsigned int tempf; - unsigned int hydroi; - unsigned int hydrof; +typedef struct{ + unsigned int hydro_integer; + unsigned int hydro_float; + unsigned int temp_integer; + unsigned int temp_float; }Data; -#define HYDRO_MAJOR_NUMBER 505 -#define HYDRO_DEV_NAME "hydro_dev" - -#define GPIO_BASE_ADDR 0x3F200000 -#define GPFSEL0 0x00 -#define GPFSEL1 0x04 -#define GPSET0 0x1C -#define GPCLR0 0x28 -#define GPLEV0 0x34 - -#define HIGH 1 -#define LOW 0 - -static void __iomem *gpio_base; -volatile unsigned int *gpsel0; -volatile unsigned int *gpsel1; -volatile unsigned int *gpset1; -volatile unsigned int *gpclr1; -volatile unsigned int *gplev1; - -int hydro_open(struct inode *inode,struct file *flip){ - printk(KERN_ALERT "HYDRO driver open!!\n"); - - gpio_base = ioremap(GPIO_BASE_ADDR, 0x60); - gpsel0 = (volatile unsigned int *)(gpio_base + GPFSEL0); - gpsel1 = (volatile unsigned int *)(gpio_base + GPFSEL1); - gpset1 = (volatile unsigned int *)(gpio_base + GPSET0); - gpclr1 = (volatile unsigned int *)(gpio_base + GPCLR0); - gplev1 = (volatile unsigned int *)(gpio_base + GPLEV0); - - *gpsel0 |= (1<<26); - *gpsel0 |= (1<<29); - *gpsel1 |= (1<<2); - *gpsel1 |= (1<<5); - - return 0; +#define HIGH 1 +#define LOW 0 + +#define HYDRO_MAJOR_NUMBER 505 +#define HYDRO_DEV_NAME "hydro_dev" + +#define IOCTL_HYDRO_MAGIC_NUMBER 'h' +#define IOCTL_CMD_HYDRO _IOR(IOCTL_HYDRO_MAGIC_NUMBER, 0, Data) + +#define GPIO_BASE_ADDRESS 0x3F200000 + +#define GPFSEL0 0x00 +#define GPFSEL1 0x04 +#define GPSET1 0x1C +#define GPCLR1 0x28 +#define GPLEV1 0x34 + +static void __iomem* gpio_base; + +volatile unsigned int* gpsel0; +volatile unsigned int* gpsel1; +volatile unsigned int* gpset1; +volatile unsigned int* gpclr1; +volatile unsigned int* gplev1; + +int hydro_open(struct inode * inode, struct file * filp){ + printk(KERN_ALERT "humidity driver open\n"); + gpio_base = ioremap(GPIO_BASE_ADDRESS, 0xFF); + + gpsel0 = (volatile unsigned int*)(gpio_base + GPFSEL0); + gpsel1 = (volatile unsigned int*)(gpio_base + GPFSEL1); + gpset1 = (volatile unsigned int*)(gpio_base + GPSET1); + gpclr1 = (volatile unsigned int*)(gpio_base + GPCLR1); + gplev1 = (volatile unsigned int*)(gpio_base + GPLEV1); + + return 0; } -int hydro_release(struct inode *inode,struct file *flip){ - printk(KERN_ALERT "HYDRO driver closed!!\n"); - - iounmap((void *)gpio_base); - - return 0; +int hydro_release(struct inode * inode, struct file * filp) { + printk(KERN_ALERT "humidity driver closed\n\n"); + iounmap((void *)gpio_base); + return 0; } -ssize_t hydro_read(struct file *filp, char* buf, size_t counts, loff_t *f_pos) { - printk(KERN_ALERT "read function called!!\n"); - Data data; - int result[5] = {0, }; - int time = 0; - int prev = HIGH; - int index = 0; - int i = 0; - - *gpsel0 |= (1<<12); - - *gpset1 |= (1<<4); - mdelay(800); - *gpclr1 |= (1<<4); - mdelay(18); - *gpset1 |= (1<<4); - udelay(30); - - *gpsel0 = (0<<24); - - for(i = 0; i < 3; i++) { - if(((*gplev1 >> 4) & HIGH) == LOW) { - while(((*gplev1 >> 4) & HIGH) == LOW){} - continue; - } - if(((*gplev1 >> 4) & HIGH) == HIGH) { - while(((*gplev1 >> 4) & HIGH) ==HIGH){} - continue; - } - } - //int status = LOW; - while(index < 40) { - if(((*gplev1 >> 4) & 0x01) == LOW) - continue; - time = 0; - while(((*gplev1 >> 4) & 0x01) == HIGH){ - time++; - udelay(1); - } - if(time > 70) - break; - result[index / 8] <<= 1; - if(time > 28) - result[index/8] |= 1; - time++; - } - int wrong = -1; - printk(KERN_ALERT "%d %d %d %d\n", result[0], result[1], result[2], result[3]); - - if((result[4] == (result[0] + result[1] + result[2] + result[3])& 0xFF) && result[0] != 0) { - data.hydroi = result[0]; - data.hydrof = result[1]; - data.tempi = result[2]; - data.tempf = result[3]; - copy_to_user(buf, (const void*)&data, sizeof(data)); - } - else - copy_to_user(buf, &wrong, sizeof(int)); - - return counts; + +long hydro_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +{ + Data data; + int result[5] = {0}; + int index = 0; + int counter = 0; + int i = 0; + switch (cmd){ + case IOCTL_CMD_HYDRO: + + *gpsel0 |= (1 << 12); + + *gpset1 |= (1 << 4); + mdelay(800); + + *gpclr1 |= (1 << 4); + mdelay(18); + + *gpset1 |= (1 << 4); + udelay(30); + + *gpsel0 &= ~(1 << 12); + + for(i = 0; i < 3; i++){ + if(((*gplev1 >> 4) & 0x01) == LOW){ + while(((*gplev1 >> 4) & 0x01) == LOW){} continue; + } + if(((*gplev1 >> 4) & 0x01) == HIGH){ + while(((*gplev1 >> 4) & 0x01) == HIGH){} continue; + } + } + + while(index < 40){ + if(((*gplev1 >> 4) & 0x01) == LOW) + continue; + counter = 0; + while(((*gplev1 >> 4) & 0x01) == HIGH){ + counter++; + udelay(1); + } + if(counter > 80) + break; + result[index / 8] <<= 1; + if(counter > 28) result[index / 8] |= 1; + index++; + } + + if(result[4] != ((result[0] + result[1] + result[2] + result[3]) & 0xFF)) + break; + data.hydro_integer = result[0]; data.hydro_float = result[1]; + data.temp_integer = result[2]; data.temp_float = result[3]; + + copy_to_user((void*)arg, (void*)&data, sizeof(data)); + printk(KERN_ALERT "hydro done\n"); + break; + + default : + printk(KERN_ALERT "cannot hydro device driver\n"); + } + + return 0; } - -static struct file_operations hydro_fops={ - .owner = THIS_MODULE, - .open = hydro_open, - .release = hydro_release, - .read = hydro_read -}; - -int __init hydro_init(void){ - if(register_chrdev(HYDRO_MAJOR_NUMBER, HYDRO_DEV_NAME, &hydro_fops)<0) - printk(KERN_ALERT "HYDRO driver initialization fail\n"); - else - printk(KERN_ALERT "HYDRO driver intialization success\n"); - - return 0; + +static struct file_operations hydro_fops = { + .owner = THIS_MODULE, + .open = hydro_open, + .release = hydro_release, + .unlocked_ioctl = hydro_ioctl +}; + +int __init hydro_init (void) { + if(register_chrdev(HYDRO_MAJOR_NUMBER, HYDRO_DEV_NAME, &hydro_fops) < 0) + printk(KERN_ALERT "hydro driver initalization failed\n"); + else + printk(KERN_ALERT "hydro driver initalization succeed\n"); + return 0; } -void __exit hydro_exit(void){ - unregister_chrdev(HYDRO_MAJOR_NUMBER, HYDRO_DEV_NAME); - printk(KERN_ALERT "HYDRO driver exit doen\n"); +void __exit hydro_exit(void){ + unregister_chrdev(HYDRO_MAJOR_NUMBER, HYDRO_DEV_NAME); + printk(KERN_ALERT "hydro driver exit"); } -module_init(hydro_init); -module_exit(hydro_exit); +module_init(hydro_init); +module_exit(hydro_exit); MODULE_LICENSE("GPL"); -MODULE_AUTHOR("joreka"); -MODULE_DESCRIPTION("HYDRO_DEV"); - - +MODULE_AUTHOR("joreka"); +MODULE_DESCRIPTION("hydro_dev"); diff --git a/hydro/hydro_dev.ko b/hydro/hydro_dev.ko index cca3ff2ae1855dab5b7a8a6ed3e2f49c767c2f09..8fc823cde0c10a626bf12758b72615749df71a69 100644 GIT binary patch literal 7952 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 literal 7604 zcmb<-^>JflWMqH=Mg|QA1doB?jW}3_)dWmwFsL%9Ft9K%Fo-ZPFfcPPFu41LGE{B+ zzGUsBbx;3^W**W?lDoX~VU!FT0|UeyMg|6-%)HVHuzm&x-UACBGThL8$+E%c5z7PJ zr~m%{f6c(a@R)(Y;W3DvAh6&u1H*#H3jEGsK7#?nV+I3<#|#P!9<m5DJYrF3eyVYx z=@ExO^HUjyhDQPinxC2oG(F;BXnqRPCnC`NltEz9QwD|Rr;Nglj~N7-p0Wr`e#)RQ z@hOv1(_;pO#-|)mK8pgBuQ2&3gTbVy3I@%O84Q}9GOU>Uf{;7m?qZk>^}~Y4Fnu5H zL;NRm!587j0EWj50S=F0eq}J2`jjzY!9%8k1rHe}Fg#9J&GVRHg2Q7218#_UP=B9U z<M3F~nc*?W56le<9)kSAs0DF157gZPP<JyrggjzqVBlggnE8~8VZlS=|N0Mq{{R0< zKw-wy1aF?lXM7wU3olsk801&Do&`~GJuFCicob$lJ;BTJIElgGF|z}z9+3GUvsnyg zJY`tW{8R))D@=YWz##OPnSnuy0m}aK|34QK1H&sMz7)ufpa1`tx}(POm|4N$F<7qv zNUz{yka~s%3m{?!lb;G02tQ(DVBlh6Snv>Jr-cIdQ^o~dk3e=?C`dp3^8f!UH-;#X zou_0Nq8_(6EO^N1&~o_Y|NpO;6&5^XFz9{CBCy~gJj@R~cx-Y26280!3m(?n9)4_Z zaQHEY!Q`hb3ez4jD_k;QFj!#Bzz_^FQ;H2_ufl@ICIa4%KxxxJLHa2>1IXN|Pnj8l zK<09R#5FE>Kl-p9HO+7!$2}-bD}d55!(#>o2WWckefpD;;W4Am0!TV%2mqyx%?u0- ziy0UkHZw3dEC!hkO4B?SydS~R7A)_8^f3r5cnmTFmKGuE5qSxu$7wcW<Ax0lZJ_Lj z%=QF}{|AeM<Un`@0|NsO0|UbY1_lNR1_lOX^&oi=#wM1MTAW;zSx}OhpJ(e4=@R50 z@8TN9kXTxhkzZt+m0y&aoyd@rnVgzeoNDVH;KNW{lw6itR18w??BwcVZ0zi2?&#!b z=4|R@Y3%A~X6D4ekdj)EnwL^+%aE6tn`)a;nNpM=pORX}P?lPho0y)NY-^%tXsKsu zu3KiVtq|-RppcuN5?`8^lb@IZVnWR?R&WgREi+drFe<Z9U|=)^yG|jcD6=fJNFl!< zHBV8Iive9cIVZn3H3cjKk}FD0Oi@TH%}WOPPa!!mCkH0UXsDW^07G013<y_(^r6_5 znU`6TnV6GVl?XN^Eip5P3*Fw#JY*%srOC;u#l>8paun6wsTG+e3Mu)ic_29f1_p*5 z3=9lkpk?y=TB)_U`6;D2sqs09mHDM5phzPDANYMZJ3hWNuP8M=v$!O+C_Xu(2o&zb z8X?(y{Cs>oxw;t`7P1!Kj*l-cNlea;PtM4W2Za=|c7xPehy41ISd<%|oL^8GUy>hR zTAW%05+@eh#J2T;^rxieBv!`f7Zek#5vq>8JG~#-{pqENMJZ4@VyIxt18+0)OY?FQ z3y4vUq2`!CgkF4nVrpViW_)R0d1hWpd~!iSd_j>RhEl8o%#JlLGxLj5$+iE(1*4jR zqRhOKY^=r;6nvnuc4K^edR}RKZgPHUUP*jjGC@7VMFDd8F<ksK>JK`EfV;D^m4Zf4 zVsSxIW@4U#g`TmVfv%Z$Q9-7mCWObpK!h4c0|o{LaM8iQsK&s+z-q4R$iT+M?#RK& z$;8DZ#3aHf$|%k(!6?Zn#U#h1gxpWS=1XQs4*)L3%)kU^gBZ-<9t4O5!OY;E1%wSE znHfO62oMW`nHe}B3@FLW0IC6@9B_Yx8^HnddC~ZMXnauZi4bCD5JYgm`i0T>pk5C` zh?zkY!2zp>be3R(%-~iOj0fs3Ng+63^)hIDSv0;J8eblbuYkr^L<w;ghL8VIeIy0; zAt;(58im3AI1pbM)XrcKX3%9|U<hGgVBm!E?HCvsVi_11_@Vqj1_p*41_lNjC?C~) zCWZ`%!C;>=GBAPdg9<S)Fo-k2Yc*z2|4^Kv79q(1a&IRRpMimep$CO8!Y~nqFNbD6 z7aE_NVK%fa3(+RRuz-Pq0n(QRiHI;PWnf?k05QQ>gaOrlHilJTaTp=Nu!VtvApyo^ z5MkH}4G)Nr2*W-G28Ia`4!A{z8a}*e?&CwVkAvYbv^@tgLIh2{02*HqjW5A)0-}+j z0USRPX!3Flm!a~YK0G6X9K&5GUkt2XnBhAE0|ST+$|;Nt!VEl&3=AsJegTM&>K}CX z38UF3$^a@PKz4z!AcGu(CbZCSU}9hpWRPMohw?$r0OdwcM#$I#Onm^Fd<2vaibEj= z4u*6n9~37-3~UTVX#6@x25_kXGq05q(!cq`$iN`Pz``&Asvc(lLNxw*Mo6Csrhgk$ z9@JL?=|2eN!}Om-<6l7IKV)QJ0O_@0fY|>YP5wU`Ul3Yk!u%@(<-_bVW@2Cfg&WL$ zR%r5wPKjP_eu`c)gGvfRe0->%XJDvnyr)Y%qAzA>#1J13?K(hvUnnX;9Wg^g6d_n= z%+P=#J}<u{HQtONK0ZDk*7-uRJDEWxkwMSL*?>XM$I;K(!#@bbayA5s8G#66xCB_t z1SDn(BFsR9In<~$P=h?ZATvKcDX};e#VtskP_R!BUW9Z+(VPzLj~W^<q!$#Y<`^)< z$CqSe7DEGo0ka98UXYVoX2<|*n<wX_CgznEz|=#UZlGQs1BieLgUvRCIv&)KL@^lL zw?XY}fHaiAG=Ms&46w#Hv{4OGj?%Y**j$vFlL`qD)TT3LR}7*a)Q4oi(N9P(NX{t& zMKrcvASkWLgh2ABwi;xdKu3*%0aTO81Trw_FfcI41TZjw>J)8tNLj0+4(X$U^zC6_ zV9?fLU^u|Qz@VeWz;FblK9B)iZh_RF0g0<KFkAtNyFvQ3AbmeT`dk<o{($6Nz=aiq zwl)I;3nK%Ajy3~>2qOc7wl4#N42bW`z@Wm&zyNZO21s0;fk6i(uFk+v!o<L!t;4`j z!NkCzqr<?^!UR#b14IWgFkAr9J`n$b>;?HtTaSSORMTqfL&`!OJq891kUR7l7(n@0 zCX|7}0pvad1_qGRv<(>;JV5dW3=BRX+7MF5fZPKbR{@y=GFL|*Vy;Xi#9VDtsJW)l za0FGh3=9lfpv(=*@Zq2uk%2*r9a5%jaVAU-HwKzvXO1;hs_*J1^c3=9k~eV|Gm zWFD+p1rvuho0wQ2=7VTZOAADU%x8j{!{iLHm&qFvuT1`sb^uc_1H%ml1_mZi1_l-; z1_mZ~1_lPb;>z5T#3Tm2;*uf=odIKkiVD5-yi&cS(#)I`-OLmQJ+KgDoLH|YHAk-` zwW36?G%qJJJ2j`00W1W{S731n7nFjbT*n|^z0``5#3V2uO&dfqGo=Du5+VW8g=R8D z0;B^;0wM@fjbt&%r4R{_Y9xu={FKbRw0s7=qWqM^l0;A#80wjT9Uc$s*yiLXGa!|f zU_XKsgH?fpCnqy6J3lWuRS&sj(gQoHAg6>uFR8egK`%K!H#aq}1R8|yexbVH!4n2O zki!y7N{TX*N=s5n8pe=jU|?Ve#V0iRfa)Gl8vx3Mx6<{{)J34QwIFE;q-O&pyTV)Z z@HQYw5-JB`mO|OE<Ox!D2dO@TWdkc{`xKPtK>7?s7#LnKFfb@FK<osm1Et^9Xy*Aa zBe&fkYC-ya(ae(&WncjL1!Nw`Eim(LqM5gb8Ilh`W`HnA9f*!WGp|4tQXYcL1Gx*N z4n%{7NI=y+%!?10A>{zb3=jsX1JNB2dkdOC9FQMbAmuJh9!9sI*}Fg#Qa*v~1!ZxN zI*`2!A?Cq*V=^p|HV)Kyc>L~ysDs<9!2-$upfCZc1(^q;x1rg4LlojZkiDRGBuE{| z-t!Ri;Px8euoo1Uj0_BLdu^chg3JKf2Qm*tKS8ti1CqU<b}C36NY7t1dtF!{Z7`4- zAPiCmqS+WheG&!+BM^syf#D4c1H&aK8$^NBf#ORNsty)!2UsC(FpwG$2B`zlqKuG! z6fB)`h(XGGP`H44jv#d)_o<<ocL7x1f+p8MhJfN5N}EE}!K5y5Fo4_nP-%F)8KT*% zfn+bJ{(;$Rk7iy2Cj$ehT@Eu3=5A{=^E|{L{ss91)T4!&7l&jX$eaV*knn_=2MRk7 zI}%BqBNGF|K^*Fmp>21Ve~)lO(iO-I5C+)`qBEf8f!Z7(K1dy?{spl?7-TO97edv6 z#6Xw_RJnl|Pz+K7Vm2~@`s#?TDo7pj@F`3kh=!#BkUj?<28IQ!3=E*Yv=cPmK=m@H l+J*T6r0#(r1A`xuMvyrmaZs8?Ru>`0z%UUe2~EQwbpU03h!+3= diff --git a/hydro/hydro_dev.mod.c b/hydro/hydro_dev.mod.c index c7f7bc2..4cbf211 100644 --- a/hydro/hydro_dev.mod.c +++ b/hydro/hydro_dev.mod.c @@ -45,4 +45,4 @@ __attribute__((section(".modinfo"))) = "depends="; -MODULE_INFO(srcversion, "CBED33CF7ABA6C5B93EA66B"); +MODULE_INFO(srcversion, "5D363F4F7E70F2B2C459F60"); diff --git a/hydro/hydro_dev.mod.o b/hydro/hydro_dev.mod.o index badda59daf496f7c86c898dd438922bfd4fdc762..e13cf67a11a9fcd46be53422bd74bb15059b3e31 100644 GIT binary patch delta 36 rcmbOuK1X~*H<P%ji?Nxpn~9sbtGR)jk&}_LiK(TVnZf2oOusk)yL$>r delta 36 rcmbOuK1X~*H<P%tldFrdv9p`Gqm!eVv#FD%v8$t*nbYP)Ousk)!I=u2 diff --git a/hydro/hydro_dev.o b/hydro/hydro_dev.o index ba0f0df5df97f16b366480a3334950c7c25b3197..aad6c69e1a2ad655e8333bb7df506cb3ca746997 100644 GIT binary patch literal 7180 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 literal 6592 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 LpneCF00RR6>39-k diff --git a/smoke/.smoke_dev.o.cmd b/smoke/.smoke_dev.o.cmd index 78434e5..3a02742 100644 --- a/smoke/.smoke_dev.o.cmd +++ b/smoke/.smoke_dev.o.cmd @@ -689,6 +689,8 @@ deps_/home/pi/Desktop/project/smoke/smoke_dev.o := \ $(wildcard include/config/slob.h) \ include/linux/overflow.h \ include/linux/kasan.h \ + include/linux/delay.h \ + arch/arm/include/asm/delay.h \ arch/arm/include/asm/mach/map.h \ $(wildcard include/config/debug/ll.h) \ arch/arm/include/asm/io.h \ diff --git a/smoke/Makefile b/smoke/Makefile index 3a223ae..3f3b1b6 100644 --- a/smoke/Makefile +++ b/smoke/Makefile @@ -1,4 +1,5 @@ -KERNEL_DIR = /lib/modules/4.19.97-v7+/build +KERNEL_VER := $(shell uname -r) +KERNEL_DIR = '/lib/modules/$(KERNEL_VER)/build' obj-m := smoke_dev.o diff --git a/smoke/app b/smoke/app new file mode 100755 index 0000000000000000000000000000000000000000..42672f08bb621d704d8a5d40b5132183348df7e1 GIT binary patch literal 8088 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 CeRkjg literal 0 HcmV?d00001 diff --git a/smoke/app.c b/smoke/app.c new file mode 100644 index 0000000..c5013ff --- /dev/null +++ b/smoke/app.c @@ -0,0 +1,24 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <fcntl.h> +#include <unistd.h> + +int main() { + int fd = open("/dev/smoke_dev", O_RDWR); + + int data = 0; + + while(1) { + read(fd, &data, sizeof(data)); + printf("%d\n", data); + sleep(1); + } + + close(fd); + + return 0; + +} + + diff --git a/smoke/smoke_dev.c b/smoke/smoke_dev.c index f6acff0..f4d08cd 100644 --- a/smoke/smoke_dev.c +++ b/smoke/smoke_dev.c @@ -9,8 +9,8 @@ #include <asm/mach/map.h> #include <asm/uaccess.h> -#define SOUND_MAJOR_NUMBER 500 -#define SOUND_DEV_NAME "/dev/smoke_dev" +#define SMOKE_MAJOR_NUMBER 500 +#define SMOKE_DEV_NAME "/dev/smoke_dev" #define GPIO_BASE_ADDR 0x3F200000 #define SPI_BASE_ADDR 0x3F204000 @@ -26,8 +26,8 @@ static void __iomem *spi_base; volatile unsigned int *gpfsel0, *gpfsel1; volatile unsigned int *spi_cs, *spi_fifo; -int sound_open(struct inode *inode, struct file *filp){ - printk(KERN_ALERT "sound detection sensor driver open!!\n"); +int smoke_open(struct inode *inode, struct file *filp){ + printk(KERN_ALERT "smoke detection sensor driver open!!\n"); gpio_base = ioremap(GPIO_BASE_ADDR, 0xFF); spi_base = ioremap(SPI_BASE_ADDR, 0xFF); @@ -39,62 +39,62 @@ int sound_open(struct inode *inode, struct file *filp){ *gpfsel0 &= ~(0x1FF << 21); *gpfsel0 |= (0x24 << 24); - *gpfsel1 &= ~(0x3F); // 111111 = 0x3F - *gpfsel1 |= (0x24); // 100100 = 0x24 + *gpfsel1 &= ~(0x3F); + *gpfsel1 |= (0x24); - *spi_cs &= ~(0xFFFF); // cs clear + *spi_cs &= ~(0xFFFF); *spi_cs &= ~(0x01<<2); - *spi_cs &= ~(0x01<<3); // spi(0,0) - *spi_cs |= (0x03<<4); // clear FIFO + *spi_cs &= ~(0x01<<3); + *spi_cs |= (0x03<<4); return 0; } -int sound_release(struct inode *inode, struct file *filp){ - printk(KERN_ALERT "sound detection sensor driver closed!!\n"); +int smoke_release(struct inode *inode, struct file *filp){ + printk(KERN_ALERT "smoke detection sensor driver closed!!\n"); *gpfsel0 &= ~(0x1FF << 21); - *gpfsel1 &= ~(0x3F); // 111111 = 0x3F - *spi_cs &= ~(0xFFFF); // cs clear + *gpfsel1 &= ~(0x3F); + *spi_cs &= ~(0xFFFF); iounmap((void*)gpio_base); iounmap((void*)spi_base); return 0; } -ssize_t sound_read(struct file* flip, char* buf, size_t count, loff_t* f_pos){ +ssize_t smoke_read(struct file* flip, char* buf, size_t count, loff_t* f_pos){ printk(KERN_ALERT "read function called!!\n"); - unsigned char spi_tData[3]; - unsigned char spi_rData[3]; - int tCount = 0; - int rCount = 0; + unsigned char transmit_Data[3]; + unsigned char receive_Data[3]; + int transmit_Count = 0; + int receive_Count = 0; - spi_tData[0] = 1; - spi_tData[1] = (0x08) << 4; - spi_tData[2] = 0; // start single d2 d1 d0 + transmit_Data[0] = 1; + transmit_Data[1] = (0x08) << 4; + transmit_Data[2] = 0; - *spi_cs |= (0x03<<4); // clear FIFO + *spi_cs |= (0x03<<4); - *spi_cs |= (0x01<<7); // TA = 1 - - while((tCount < 3) || (rCount < 3)){ - while((*spi_cs & (1<<18)) && (tCount < 3)){ - *spi_fifo = spi_tData[tCount]; - tCount++; + *spi_cs |= (0x01<<7); + + while((transmit_Count < 3) || (receive_Count < 3)){ + while((*spi_cs & (1<<18)) && (transmit_Count < 3)){ + *spi_fifo = transmit_Data[transmit_Count]; + transmit_Count++; } - while((*spi_cs & (1<<17)) && (rCount < 3)){ - spi_rData[rCount] = *spi_fifo; - rCount++; + while((*spi_cs & (1<<17)) && (receive_Count < 3)){ + receive_Data[receive_Count] = *spi_fifo; + receive_Count++; } } while((!(*spi_cs)) & (1<<16)); - *spi_cs |= (0x03<<4); // clear FIFO - *spi_cs &= ~(1<<7); // TA = 0 + *spi_cs |= (0x03<<4); + *spi_cs &= ~(1<<7); - int data = ((spi_rData[1]&0x03)<<8) + spi_rData[2]; + int data = ((receive_Data[1]&0x03)<<8) + receive_Data[2]; printk(KERN_ALERT "reading input : %d \n", data); @@ -103,32 +103,32 @@ ssize_t sound_read(struct file* flip, char* buf, size_t count, loff_t* f_pos){ return count; } -static struct file_operations sound_fops = { +static struct file_operations smoke_fops = { .owner = THIS_MODULE, - .open = sound_open, - .release = sound_release, - .read = sound_read + .open = smoke_open, + .release = smoke_release, + .read = smoke_read }; -int __init sound_init(void){ - if(register_chrdev(SOUND_MAJOR_NUMBER, SOUND_DEV_NAME, &sound_fops) < 0) - printk(KERN_ALERT "sound detection sensor initialization failed!!\n"); +int __init smoke_init(void){ + if(register_chrdev(SMOKE_MAJOR_NUMBER, SMOKE_DEV_NAME, &smoke_fops) < 0) + printk(KERN_ALERT "smoke detection sensor initialization failed!!\n"); else - printk(KERN_ALERT "sound detection sensor initialization success!!!\n"); + printk(KERN_ALERT "smoke detection sensor initialization success!!!\n"); return 0; } -void __exit sound_exit(void){ - unregister_chrdev(SOUND_MAJOR_NUMBER, SOUND_DEV_NAME); - printk(KERN_ALERT "sound detection sensor driver exit done!!!!"); +void __exit smoke_exit(void){ + unregister_chrdev(SMOKE_MAJOR_NUMBER, SMOKE_DEV_NAME); + printk(KERN_ALERT "smoke detection sensor driver exit done!!!!"); } -module_init(sound_init); -module_exit(sound_exit); +module_init(smoke_init); +module_exit(smoke_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("joreka"); -MODULE_DESCRIPTION("SOUND_DEV"); +MODULE_DESCRIPTION("SMOKE_DEV"); diff --git a/smoke/smoke_dev.ko b/smoke/smoke_dev.ko index 2fadb110fb852d3b4e1c142cefc2024e2375733a..46ea2a6e2b6f38b6fe4b9dcccca4485527d6780e 100644 GIT binary patch literal 7644 zcmb<-^>JflWMqH=Mg|QA1doA1L;@_sY67M-7*rWl7+4q>7(^Ht7?>Ft7~K6r8BAYB zF}v-1W$Zm|r}Z9{-nNAjucO%*7$D{_GBEgL=9N}}^)oQ=9$4_u;D+u?mJL3SSRUv; z{rCU>YX$~}#|#V(j~N^o9)tM*1r|JJU|8^2f!`U-XK-+M3=wO2%E*Z%t}x}P07J`D z7K4UIA_gG3>Cq2`BM%t_7CdAynDi8628%$;)BmQ2A2XR9e#~Id^przk%2SXWr*Siw z&jaP#8$je?d=&$TyZ}^Q*<!&%W($zHO;2HBEKof#J_j1#0BVN8in%Ya`rCowG01N) z|AYJvb{_-8jmYkXxeMk_n4QS(0_kUAm;w#c1&?9&ez*+@Z-EQGh%iU9o55hpQ^tS= z51A4cJk&7YhM1wi@R⁢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 literal 7792 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 VP(Kh^U4R$^!&aCiH1B}a0RV+Xh*tmr diff --git a/smoke/smoke_dev.mod.c b/smoke/smoke_dev.mod.c index d04f78a..e70a193 100644 --- a/smoke/smoke_dev.mod.c +++ b/smoke/smoke_dev.mod.c @@ -44,4 +44,4 @@ __attribute__((section(".modinfo"))) = "depends="; -MODULE_INFO(srcversion, "F5B0732CBA91D4A07D8535A"); +MODULE_INFO(srcversion, "194BCBE501BF825F76154FB"); diff --git a/smoke/smoke_dev.mod.o b/smoke/smoke_dev.mod.o index 669c6428442bc6003a448dab9cdb9537b81b207a..e401880a933fd15ad1ef28a017eb706004b3f0fe 100644 GIT binary patch delta 36 rcmca3c1LVOH<P%brHPZXldGwLp_7}1k*S-xnW3qPo73h+OuIM$%s~o{ delta 36 rcmca3c1LVOH<P%Vsgr@Zv5~WrqotvXiKBtJi-oDNspIBFOuIM$%qj|n diff --git a/smoke/smoke_dev.o b/smoke/smoke_dev.o index a174761702635ef788f2afb307fe80635a399421..cb7d48810a79fdddc6e5ef299873721e8ec8b187 100644 GIT binary patch literal 6688 zcmb<-^>JflWMqH=Mg|QA1doBiK@=>*Y67M-7~~kF!K{HKcn>UiXmCUKCCdh%M=TF? zpZ@#*|1|>x!(#>phsO*K439zl{{jmhGcYW8tibOK<})}rJcfw1JZ0oW5?7e=RDhx7 zDT_hFBM}1--Sp^(!jXpz0t+587)*K!GJ{2+<>`OZ!;hKF4nJlvXnM+_Fy$#oj?=gq z%;$mf?F}IEFusZbL|y<YuWYg4A+rU@+@_~6F&3yE7@q@;ZvZvJV8z@QSpDt5@EGJb znEye32fL2};zne5!`uaPC(KS{cY*Y?Fie4l>4L{Fdq3QUgtx#2UqqOr+09@u<tbyp zf`?2A3m$41a6`;cV0g@+;P9BiV8LS@1MjB-4<<cjI<Vj&Gbnr+<~=oFXn4%P(Dzh; zVbW9W2i}hu6&5_!Q}BLTukhfpu7dYd289Vv8x)!zGbl7X6;PP-l!+nmu}H(5rwj!P z4l@=kxXi#X>8S#z_ybl31}+r^kp89zi~^01xD<k(GAMLB{rLa?D~1V^o-#26gVMuc zMur8KSI!W4z`!s=l#k)CIHN(c(6|5pr5G5dKYRwF!Ew&;m_Yy(_YRM>45FVJ2sA!s z5NLWTATZ}Cv&n*ong^nvGTSgeVo;d)l*gd?L4(4f#|#RMPeFb%f%==*V8O$B+ry7R zVa;JM`6-LS)JMz;mkbyT78o-y1V3hGV31;ESn!ZVVZmb)0q;kkaMw_fe#*uGN*`06 zGBX4{WME+60*R|!@P71R_1qUOvl$yVY-nx+<vnD!2UvVRSR5n=!ao=o7<d>M7z!8} z7$g`N7(i)<0h(txkmC@PPe5^G0E;Jw#|#R+Piy%XJZ98c0LeQH0go9N7&bF7Ff3+Z zaM;Yi;IJ6vE>Pa!x#0bXVa41RPGC1Qptu3qPLNp)0t+64%w+)CW#9lc8<KCq=HW0W zCAB!YD6^m>Ge6HZ*w^3NHQvQFj3KeKBqP7bHY>j<H9L_ZCo?%UuQ=7#J-~;7(Xco- zKRZ<+CAB0q8Kg_0I5n?0zepjaD6=fJNFl!<HBV8Ii=evXoc!X{6p%^=21di8)Wj5p zw9-6?iOGpMIjC}(dFcw7c?G2<3RViLDGFQ+4EialW%^*J#HXZ|fy@ANFx{1zmsygT zn3GwR2zG5+VkVN=#OWz6O-@cNE>;A&mXQBbD>6$IQu6as6%`c~85rE1ovjo!f)a}h zk}?zX6fE?N^$c{)w2KNd4K*P=21h*x28P7c#H36HMimAI23B)jM+P=7c1I3IP9`BH z5k^r)ab^idNk%CqIVL6K`U8{}K^R$#h2i6WkQfXzqtrMI49pBnFexz2%)kPsVFWV+ zD+4c#1EyIS1i&<m5M_W=TQEMles%_Vm=u_12a_;@nSldMo`XS&fq_8-rhq||L7jnt zAq0u91IlYid^nQ<<R30H_i`~9A}e5EVz6dlVCaC0i844aFfhzO;=3|1Fq}c+!<k_7 zdC=So%J~Qt%nZC}@~EN5%)pQ4K7Ix-kal>ap@t?igCLrDf*{p!%*-H!CXdc%V(^Em zZeU<wU}RuIQ_sQ>1(gTI93uk@Lka@}I2FM7P-!s5%pk&$3uZAeh=I)$VQ6Q7u=$|; zISdR8pp**=8Ab*XsA>qs%pi(pKe~U#Aqt@+GuRd=2ORzq44a@_P`N9_z{;=}$_G)P zw0Rc9fMO8;3X~0^K>Rx(1{8z%pBWe!KxS1iFff43Lu#Ud(>f<3q-^hCgvg7)<B9<+ zuZG4qN8@`y`3Ye2xfp_>e2^1B_NPMmF!@3#AJh&MV&G?}f%0MMCqVfy`T2|t;7|s| zmmmWR!wN=-yI}nFjF9>X#^27!z`y~GW03m&Q1f8sGk}XhP&ulX%%GCUpy%Ukz@X>j z=;!R=A7sFwk^&Mj1QA9c!Wb?G7Bc~fnSuy25Md5AEiJ#Gm?6C&Ge15lu{f2XxF8e4 zh>s8T^9&4ijrVkkN2+`bjTn$+AQh0IA&MZh9x^n5S^=tS7~<p8^Gf4$lk-dSO5*d9 z848Lr^GdQAGV_a4a}x^~;^V<ZYkX;5d1hWpd~!iSd_j>R)PSPYoK%qGGV@FGK#C#Z z0IG}_;^T`;5|gvzlQXj8(@PVJQWz48a^sWp3o7GF^5aX3Q;SfPfT|U!p`Z$fAwIq+ zH9fPqB(*3$Iim<vLxF_jbMsS5b5fxSK~)7qe0*shy3*vF)Wp2f0=Vje%=om-w0v+F zCW8VstvEHukRiPQL>n-~$CqSe7Q<A7B9(!Gfyo6D=S*e{44`zwq|d-$0}?lZq!k$h zNE*^+hqPgI*cljP7#J9|IT#oe7#J923>g><K(rA=zYYfjg9nt)!N|Y>($B*PQ7^#A zzyOj5<r8gQ1_lWbpO=9_2BglAfguJ&n=&w@K<O3`ZNR_)%3s>%3=BOW_2vu=pmeUy z$G|WJ#OGrGr)!Wq)<Esq021e5U`SwMV9@4gV8~!%V9?=bU|7HeaqkrnZNb3s21Hvz z0z!)wLNgdc$~Y}fNVtH+LFE;Q56Y7uKB(jZ@j*1mf8g*Cf`o^*Fr<vr5rWiJI>HPL z7NGF3W&qbG+9C`LE}-xeg@lui2m^x;0|SGOC<8+PNFB6N(gIlqauUovVvz6$nGdoL zWG*=T?I8AP%RuduVPF8&gP`yLY1fhhkqiuQf5|d1Fz6Lm=9VNTG3XVS6hY_=7^^5X zM=vF@B#}WcskoRy55z4=ttine&CAKmPR*%g&~ps()l01?Nlem1lK`oONM@!~V3PzT zZLm19AxMI#2B1lRash^BBtcZoND{gEDVcd``3!nR`5=#h{A{Ra!l0L&pPQSSSHhr| zmtT^q=k6D(3(m<9w<VU86lErrmZTO#gO3<$BDkJoU|@qP2IVIx6HLL1Q&77H#AXJI zLh=o$4u*2Ubu5St>g97XK++9}U%>-OW0Ii!2`#5V<+UmUB(1{C+rj`zD<C}}3@YD2 zv^$#nK<a)VHS=KVv=|r|knNqp!@%%@fq?;JFDRRU)Pd}^g_;L5VhuASErRR<VURiy z4QfY#s>&u1hk=3N0yD&YAhSS1Fm+*Q_BQZB@(##ekbNL^Ai4)?FD#s2Ff%ZK>PV1T zAPiCmqCs(o?2jG13=9!ae{dm%AIM#x_<;Gtg9TDAg3JJ6n0d1y_7;HDgTzBvAmI)& z3&e-1n~vrW0X~R-LH+=>`atSH{x}IS51w9PSRiQuWEKd6)Pd*?Xy$3~LCRc^dHhKJ z*bg-i=8p+D{BZ-K4(^XRP=A2T0@(+%7t}sN4!;N_e+VJj`xaszyvMMF1>!!CSs)Aw zTM+#Xs?G?+VPIgm!ot9y2a|-F2ja3ag4&}9Gnm*=(-lY!2=hVJL5*WjgCz*407wmp zDaQzE|1%VT*dPp2rw?L4F-#qZhJ_tSDuRuHA%KN}0aS#7)PuqWR4jwS1eVu8>Q-<u zFq{Qx263Q%1TjG^a%6R&#+W@8b))4mDdjP!PKt*$<Z|+pK_N{X9xb0y^ARXLgF<e! zd>$>ILFr($d}d(4Rz4d+>ls+x@IeyNHv)wj2!rww2!rY}P~89$17j&fdkxfP2dM$o j`=B}m)Hee4Z$NzrkXj~INWTL_gVca%P``sofPn!3L7F=5 literal 7036 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 C0x6LI diff --git a/test b/test deleted file mode 100755 index 7a5f96a9ed807a26fd8e8097010eb0832f51d74b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8528 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 diff --git a/test.c b/test.c deleted file mode 100644 index ec7f65a..0000000 --- a/test.c +++ /dev/null @@ -1,125 +0,0 @@ -#include <fcntl.h> -#include <unistd.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <math.h> -#include <errno.h> -#include <time.h> -#include <arpa/inet.h> - -#include <sys/socket.h> -#include <sys/ioctl.h> -#include <sys/types.h> -#include <sys/sysmacros.h> - -#define SMOKE_DEV_PATH "/dev/smoke_dev" -#define BUZZER_DEV_PATH "/dev/buzzer_dev" -#define HYDRO_DEV_PATH "/dev/hydro_dev" - -#define IOCTL_HYDRO_MAGIC_NUMBER 'h' - -#define INTERVAL 50000 -#define BUFF_SIZE 50 - -typedef struct{ - int hydro_int; - int hydro_double; - int temp_int; - int temp_double; -}HYDRO; - -#define IOCTL_CMD_HYDRO _IOR(IOCTL_HYDRO_MAGIC_NUMBER, 0, HYDRO) -int main(void) -{ - int client_socket; - struct sockaddr_in server_addr; - char buff[BUFF_SIZE+5] = "Humidity:"; - char buff2[BUFF_SIZE+5] = "Temperature"; - - client_socket = socket(PF_INET, SOCK_STREAM, 0); - if(client_socket == -1) { - printf("socket fail\n"); - exit(1); - } - - memset(&server_addr, 0, sizeof(server_addr)); - server_addr.sin_family = AF_INET; - server_addr.sin_port = htons(4015); - server_addr.sin_addr.s_addr = inet_addr("192.168.0.9"); - - if(connect(client_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { - printf("connect error\n"); - return 1; - } - - int smoke_dev, smoke_data; - int buzzer_dev, buzzer_data = 400; - int hydro_dev; - HYDRO hydro_info; - char Temp[20], Hum[20]; - smoke_dev = open(SMOKE_DEV_PATH, O_RDONLY); - buzzer_dev = open(BUZZER_DEV_PATH, O_RDWR); - hydro_dev = open(HYDRO_DEV_PATH, O_RDONLY); - - if(smoke_dev < 0) { - printf("fail to open smoke detection sensor device\n"); - return 1; - } - - if(buzzer_dev < 0) { - printf("fail to open buzzer sensor device\n"); - return 1; - } - - if(hydro_dev < 0) { - printf("fail to open hydro sensor device\n"); - return 1; - } - - int count = 0; - - - - while(1) { - read(smoke_dev, &smoke_data, sizeof(int)); - printf("data : %d\n", smoke_data); - if(smoke_data > 600) { - write(buzzer_dev, &buzzer_data, sizeof(int)*2); - } - sleep(1); - while(1) { - ioctl(hydro_dev, IOCTL_CMD_HYDRO, &hydro_info); - printf("temperature is %d.%d%%, humidity is %d.%d%%\n",hydro_info.temp_int, hydro_info.temp_double, hydro_info.hydro_int, hydro_info.hydro_double); - - if(hydro_info.temp_double > 100) - hydro_info.temp_double /= 100; - else if(hydro_info.temp_double > 10) - hydro_info.temp_double /= 10; - - if(hydro_info.hydro_double > 100) - hydro_info.hydro_double /= 100; - else if(hydro_info.hydro_double > 10) - hydro_info.hydro_double /= 10; - - sprintf(Temp, "%d.%dC", hydro_info.temp_int, hydro_info.temp_double); - sprintf(Hum, "%d.%d%%", hydro_info.hydro_int, hydro_info.hydro_double); - printf("%s %s\n", Temp, Hum); - strcat(buff, Hum); - strcat(buff2, Temp); - write(client_socket, buff2, strlen(buff2) + 1); - write(client_socket, buff, strlen(buff) + 1); - printf("%s %s\n", Temp, Hum); - sleep(1); - if(hydro_info.temp_int != 0) - break; - } - } - - close(client_socket); - close(smoke_dev); - close(buzzer_dev); - close(hydro_dev); - - return 0; -} -- GitLab