diff --git a/01_day/.module_2.ko.cmd b/01_day/.module_2.ko.cmd deleted file mode 100644 index ed08ae9..0000000 --- a/01_day/.module_2.ko.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/root/android/my_test/01_day/module_2.ko := aarch64-linux-android-ld -EL -r -T /root/tegra/scripts/module-common.lds --build-id -o /root/android/my_test/01_day/module_2.ko /root/android/my_test/01_day/module_2.o /root/android/my_test/01_day/module_2.mod.o diff --git a/01_day/.Makefile.swp b/01_day/.my_timer.c.swp similarity index 84% rename from 01_day/.Makefile.swp rename to 01_day/.my_timer.c.swp index 3c89df6..31cc67b 100644 Binary files a/01_day/.Makefile.swp and b/01_day/.my_timer.c.swp differ diff --git a/01_day/.my_timer.ko.cmd b/01_day/.my_timer.ko.cmd new file mode 100644 index 0000000..b250fb7 --- /dev/null +++ b/01_day/.my_timer.ko.cmd @@ -0,0 +1 @@ +cmd_/root/android/my_test/01_day/my_timer.ko := aarch64-linux-android-ld -EL -r -T /root/tegra/scripts/module-common.lds --build-id -o /root/android/my_test/01_day/my_timer.ko /root/android/my_test/01_day/my_timer.o /root/android/my_test/01_day/my_timer.mod.o diff --git a/01_day/.module_2.mod.o.cmd b/01_day/.my_timer.mod.o.cmd similarity index 97% rename from 01_day/.module_2.mod.o.cmd rename to 01_day/.my_timer.mod.o.cmd index d2ec2d9..3ce6970 100644 --- a/01_day/.module_2.mod.o.cmd +++ b/01_day/.my_timer.mod.o.cmd @@ -1,8 +1,8 @@ -cmd_/root/android/my_test/01_day/module_2.mod.o := aarch64-linux-android-gcc -Wp,-MD,/root/android/my_test/01_day/.module_2.mod.o.d -nostdinc -isystem /root/android/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/../lib/gcc/aarch64-linux-android/4.9/include -I/root/tegra/arch/arm64/include -Iarch/arm64/include/generated -Iinclude -I/root/tegra/arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I/root/tegra/include/uapi -Iinclude/generated/uapi -include /root/tegra/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-tegra/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -std=gnu89 -O2 -fconserve-stack -mgeneral-regs-only -fno-pic -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -DCC_HAVE_ASM_GOTO -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(module_2.mod)" -D"KBUILD_MODNAME=KBUILD_STR(module_2)" -DMODULE -c -o /root/android/my_test/01_day/module_2.mod.o /root/android/my_test/01_day/module_2.mod.c +cmd_/root/android/my_test/01_day/my_timer.mod.o := aarch64-linux-android-gcc -Wp,-MD,/root/android/my_test/01_day/.my_timer.mod.o.d -nostdinc -isystem /root/android/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/../lib/gcc/aarch64-linux-android/4.9/include -I/root/tegra/arch/arm64/include -Iarch/arm64/include/generated -Iinclude -I/root/tegra/arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I/root/tegra/include/uapi -Iinclude/generated/uapi -include /root/tegra/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-tegra/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -std=gnu89 -O2 -fconserve-stack -mgeneral-regs-only -fno-pic -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -DCC_HAVE_ASM_GOTO -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(my_timer.mod)" -D"KBUILD_MODNAME=KBUILD_STR(my_timer)" -DMODULE -c -o /root/android/my_test/01_day/my_timer.mod.o /root/android/my_test/01_day/my_timer.mod.c -source_/root/android/my_test/01_day/module_2.mod.o := /root/android/my_test/01_day/module_2.mod.c +source_/root/android/my_test/01_day/my_timer.mod.o := /root/android/my_test/01_day/my_timer.mod.c -deps_/root/android/my_test/01_day/module_2.mod.o := \ +deps_/root/android/my_test/01_day/my_timer.mod.o := \ $(wildcard include/config/module/unload.h) \ include/linux/module.h \ $(wildcard include/config/sysfs.h) \ @@ -574,6 +574,6 @@ deps_/root/android/my_test/01_day/module_2.mod.o := \ include/linux/vermagic.h \ include/generated/utsrelease.h \ -/root/android/my_test/01_day/module_2.mod.o: $(deps_/root/android/my_test/01_day/module_2.mod.o) +/root/android/my_test/01_day/my_timer.mod.o: $(deps_/root/android/my_test/01_day/my_timer.mod.o) -$(deps_/root/android/my_test/01_day/module_2.mod.o): +$(deps_/root/android/my_test/01_day/my_timer.mod.o): diff --git a/01_day/.module_2.o.cmd b/01_day/.my_timer.o.cmd similarity index 93% rename from 01_day/.module_2.o.cmd rename to 01_day/.my_timer.o.cmd index f08c32f..936988b 100644 --- a/01_day/.module_2.o.cmd +++ b/01_day/.my_timer.o.cmd @@ -1,8 +1,8 @@ -cmd_/root/android/my_test/01_day/module_2.o := aarch64-linux-android-gcc -Wp,-MD,/root/android/my_test/01_day/.module_2.o.d -nostdinc -isystem /root/android/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/../lib/gcc/aarch64-linux-android/4.9/include -I/root/tegra/arch/arm64/include -Iarch/arm64/include/generated -Iinclude -I/root/tegra/arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I/root/tegra/include/uapi -Iinclude/generated/uapi -include /root/tegra/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-tegra/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -std=gnu89 -O2 -fconserve-stack -mgeneral-regs-only -fno-pic -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -DCC_HAVE_ASM_GOTO -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(module_2)" -D"KBUILD_MODNAME=KBUILD_STR(module_2)" -c -o /root/android/my_test/01_day/module_2.o /root/android/my_test/01_day/module_2.c +cmd_/root/android/my_test/01_day/my_timer.o := aarch64-linux-android-gcc -Wp,-MD,/root/android/my_test/01_day/.my_timer.o.d -nostdinc -isystem /root/android/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/../lib/gcc/aarch64-linux-android/4.9/include -I/root/tegra/arch/arm64/include -Iarch/arm64/include/generated -Iinclude -I/root/tegra/arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I/root/tegra/include/uapi -Iinclude/generated/uapi -include /root/tegra/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-tegra/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -std=gnu89 -O2 -fconserve-stack -mgeneral-regs-only -fno-pic -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -DCC_HAVE_ASM_GOTO -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(my_timer)" -D"KBUILD_MODNAME=KBUILD_STR(my_timer)" -c -o /root/android/my_test/01_day/my_timer.o /root/android/my_test/01_day/my_timer.c -source_/root/android/my_test/01_day/module_2.o := /root/android/my_test/01_day/module_2.c +source_/root/android/my_test/01_day/my_timer.o := /root/android/my_test/01_day/my_timer.c -deps_/root/android/my_test/01_day/module_2.o := \ +deps_/root/android/my_test/01_day/my_timer.o := \ include/linux/module.h \ $(wildcard include/config/sysfs.h) \ $(wildcard include/config/modules.h) \ @@ -571,35 +571,7 @@ deps_/root/android/my_test/01_day/module_2.o := \ $(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/gpio.h \ - $(wildcard include/config/gpiolib.h) \ - $(wildcard include/config/arch/have/custom/gpio/h.h) \ - /root/tegra/arch/arm64/include/asm/gpio.h \ - $(wildcard include/config/arch/nr/gpio.h) \ - $(wildcard include/config/need/mach/gpio/h.h) \ - include/asm-generic/gpio.h \ - $(wildcard include/config/of/gpio.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/gpio/sysfs.h) \ - include/linux/of.h \ - $(wildcard include/config/sparc.h) \ - $(wildcard include/config/of/dynamic.h) \ - $(wildcard include/config/attach/node.h) \ - $(wildcard include/config/detach/node.h) \ - $(wildcard include/config/add/property.h) \ - $(wildcard include/config/remove/property.h) \ - $(wildcard include/config/update/property.h) \ - $(wildcard include/config/proc/devicetree.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - /root/tegra/arch/arm64/include/asm/prom.h \ - include/linux/pinctrl/pinctrl.h \ - include/linux/radix-tree.h \ - include/linux/seq_file.h \ - include/linux/pinctrl/pinctrl-state.h \ -/root/android/my_test/01_day/module_2.o: $(deps_/root/android/my_test/01_day/module_2.o) +/root/android/my_test/01_day/my_timer.o: $(deps_/root/android/my_test/01_day/my_timer.o) -$(deps_/root/android/my_test/01_day/module_2.o): +$(deps_/root/android/my_test/01_day/my_timer.o): diff --git a/01_day/.tmp_versions/module_2.mod b/01_day/.tmp_versions/module_2.mod deleted file mode 100644 index 885c5be..0000000 --- a/01_day/.tmp_versions/module_2.mod +++ /dev/null @@ -1,2 +0,0 @@ -/root/android/my_test/01_day/module_2.ko -/root/android/my_test/01_day/module_2.o diff --git a/01_day/.tmp_versions/my_timer.mod b/01_day/.tmp_versions/my_timer.mod new file mode 100644 index 0000000..1caecdc --- /dev/null +++ b/01_day/.tmp_versions/my_timer.mod @@ -0,0 +1,2 @@ +/root/android/my_test/01_day/my_timer.ko +/root/android/my_test/01_day/my_timer.o diff --git a/01_day/Makefile b/01_day/Makefile index 5322407..5a32871 100644 --- a/01_day/Makefile +++ b/01_day/Makefile @@ -1,4 +1,4 @@ -obj-m = module_2.o +obj-m = my_timer.o KERNEL = /root/tegra PWD = $(shell pwd) diff --git a/01_day/a.out b/01_day/a.out index 421ba29..48da326 100755 Binary files a/01_day/a.out and b/01_day/a.out differ diff --git a/01_day/module_2.ko b/01_day/module_2.ko deleted file mode 100644 index 7a16ad7..0000000 Binary files a/01_day/module_2.ko and /dev/null differ diff --git a/01_day/module_2.o b/01_day/module_2.o deleted file mode 100644 index 53f1e10..0000000 Binary files a/01_day/module_2.o and /dev/null differ diff --git a/01_day/modules.order b/01_day/modules.order index dc0f6a0..be4bf99 100644 --- a/01_day/modules.order +++ b/01_day/modules.order @@ -1 +1 @@ -kernel//root/android/my_test/01_day/module_2.ko +kernel//root/android/my_test/01_day/my_timer.ko diff --git a/01_day/my_timer.c b/01_day/my_timer.c new file mode 100644 index 0000000..41b4d3d --- /dev/null +++ b/01_day/my_timer.c @@ -0,0 +1,67 @@ +#if 1 +#include // init_module, cleanup_module +#include // printk +#include // timer 계열 + +static struct timer_list timer; +void my_timer_handler( unsigned long data ) +{ + printk("my_timer_handler(%lu)\n", data ); + timer.data = data+1; + mod_timer( &timer, jiffies + 1*HZ); +} + +int my_init(void) +{ + printk("my_init\n"); + init_timer(&timer); + timer.expires = jiffies + HZ; + // 현재시간 으로부터 1 초 + timer.function = my_timer_handler; + timer.data = 0; + add_timer(&timer); + return 0; +} + +void my_exit(void) +{ + del_timer(&timer); + printk("my_exit\n"); +} +module_init( my_init ); +module_exit( my_exit ); + +MODULE_LICENSE("GPL"); +#endif +#if 0 +#include // init_module, cleanup_module +#include // printk +#include // timer 계열 + +static struct timer_list timer; +void my_timer_handler( unsigned long data ) +{ + printk("my_timer_handler(%lu)\n", data ); +} +int my_init(void) +{ + printk("my_init\n"); + init_timer(&timer); + timer.expires = jiffies + 3*HZ; + // 현재시간 으로부터 3 초 + timer.function = my_timer_handler; + timer.data = 0; + add_timer(&timer); + return 0; +} + +void my_exit(void) +{ + del_timer(&timer); + printk("my_exit\n"); +} +module_init( my_init ); +module_exit( my_exit ); + +MODULE_LICENSE("GPL"); +#endif diff --git a/01_day/my_timer.ko b/01_day/my_timer.ko new file mode 100644 index 0000000..03d975e Binary files /dev/null and b/01_day/my_timer.ko differ diff --git a/01_day/module_2.mod.c b/01_day/my_timer.mod.c similarity index 100% rename from 01_day/module_2.mod.c rename to 01_day/my_timer.mod.c diff --git a/01_day/module_2.mod.o b/01_day/my_timer.mod.o similarity index 69% rename from 01_day/module_2.mod.o rename to 01_day/my_timer.mod.o index 7f260f6..dd538cc 100644 Binary files a/01_day/module_2.mod.o and b/01_day/my_timer.mod.o differ diff --git a/01_day/my_timer.o b/01_day/my_timer.o new file mode 100644 index 0000000..d5a0ec3 Binary files /dev/null and b/01_day/my_timer.o differ diff --git a/01_day/time.c b/01_day/time.c new file mode 100644 index 0000000..5feaa67 --- /dev/null +++ b/01_day/time.c @@ -0,0 +1,9 @@ +#include +#include +int main() +{ + time_t now; + now = time(0); + printf("now = %lu\n", now ); + return 0; +}