Skip to content
Snippets Groups Projects
Commit 7f125f0c authored by 201221016Kim Haeram's avatar 201221016Kim Haeram
Browse files

final

parent 8a6c253a
No related branches found
No related tags found
No related merge requests found
File deleted
app/app.c 0 → 100644
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include <wiringPi.h>
#include <wiringPiSPI.h>
#include <fcntl.h>
#include <string.h>
#include <stdint.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/sysmacros.h>
#include <linux/spi/spidev.h>
#define LOADCELL_MAJOR_NUMBER 502
#define LOADCELL_MINOR_NUMBER 100
#define LOADCELL_DEV_PATH_NAME "/dev/loadcell_dev"
#define LOADCELL_THRESHOLD 10000
#define LED_PED_GREEN 18
#define LED_CAR_RED 23
#define LED_CAR_YELLOW 24
#define LED_CAR_GREEN 25
#define HS_TRIG 2
#define HS_ECHO 3
#define HS_MAX 1400
#define HS_MIN 50
#define HS_WAIT_THRESHOLD 10
#define HS_INCOME_THRESHOLD 30
#define TERM_COMING 1
#define SPI_DEV0_PATH "/dev/spidev0.0"
#define SPI_CHANNEL 0
#define SPI_SPEED 1000000
#define SPI_DELAY 0
#define SPI_BPW 8
#define ADC_CHANNEL 0
#define WATER_THRESHOLD 300
#define MAIN_WAITTIME 3
int isPedestrianComing = 0;
long weight = -1;
double distance = -1;
int adc_value = -1;
long tare = -1;
void *hs_read(void *data){
//printf("hs_read() called\n");
while(1){
digitalWrite(HS_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(HS_TRIG, LOW);
unsigned int echoStart = millis();
while(digitalRead(HS_ECHO) == LOW && millis()-echoStart < 1000) {
// do nothing
}
if (millis()-echoStart < 1000) {
// Mark start
unsigned int start = micros();
while(digitalRead(HS_ECHO) == HIGH) {
// do nothing
}
// Mark end
unsigned int end = micros();
unsigned int delta = end-start;
if(delta < HS_MAX && delta > HS_MIN){
distance = 34029 * delta / 2000000.0;
//printf("Distance: %f\n", distance);
}
else distance = -1;
}
}
}
void *water_read(void *data){
struct spi_ioc_transfer spi;
int spiFds = *(int *)data;
while (1) {
unsigned char buffer[3];
buffer[0] = 1;
buffer[1] = (8 + ADC_CHANNEL) << 4;
buffer[2] = 0;
memset(&spi, 0, sizeof(spi));
spi.tx_buf = (unsigned long)buffer;
spi.rx_buf = (unsigned long)buffer;
spi.len = 3;
spi.delay_usecs = (uint16_t) SPI_DELAY;
spi.speed_hz = (uint16_t) SPI_SPEED;
spi.bits_per_word = (uint8_t) SPI_BPW;
ioctl(spiFds, SPI_IOC_MESSAGE(1), &spi);
adc_value = ((buffer[1] & 3) << 8) + buffer[2];
//printf("%d\n",adc_value);
delay(100);
}
}
void *incoming_validate(void *data){
double buf1 = 0;
double buf2 = 0;
double buf3 = 0;
//printf("thread opened\n");
while(distance<0){
//printf("distance not ready\n");
sleep(1);
}
buf1 = distance;
sleep(TERM_COMING);
while(distance<0){
//printf("distance not ready\n");
sleep(1);
}
buf2 = distance;
sleep(TERM_COMING);
while(TRUE){
while(distance<0){
isPedestrianComing = FALSE;
//printf("distance not ready\n");
sleep(1);
}
buf3 = distance;
if(buf3 < HS_INCOME_THRESHOLD
& ((isPedestrianComing == TRUE)
|| (buf2 - buf1 < 0
&& buf3 - buf2 < 0))){
isPedestrianComing = TRUE;
//printf("%2.1f %2.1f %2.1f true\n",buf1,buf2,buf3);
}
else{
isPedestrianComing = FALSE;
//printf("%2.1f %2.1f %2.1f false\n",buf1,buf2,buf3);
}
sleep(TERM_COMING);
while(distance<0){
isPedestrianComing = FALSE;
//printf("distance not ready\n");
sleep(1);
}
buf1 = distance;
if(buf1 < HS_INCOME_THRESHOLD
& ((isPedestrianComing == TRUE)
|| (buf3 - buf2 < 0
&& buf1 - buf3 < 0))){
isPedestrianComing = TRUE;
//printf("%2.1f %2.1f %2.1f true\n",buf2,buf3,buf1);
}
else{
isPedestrianComing = FALSE;
//printf("%2.1f %2.1f %2.1f false\n",buf2,buf3,buf1);
}
sleep(TERM_COMING);
while(distance<0){
isPedestrianComing = FALSE;
//printf("distance not ready\n");
sleep(1);
}
buf2 = distance;
if(buf2 < HS_INCOME_THRESHOLD
& ((isPedestrianComing == TRUE)
|| (buf1 - buf3 < 0
&& buf2 - buf1 < 0))){
isPedestrianComing = TRUE;
//printf("%2.1f %2.1f %2.1f true\n",buf3,buf1,buf2);
}
else{
isPedestrianComing = FALSE;
//printf("%2.1f %2.1f %2.1f false\n",buf3,buf1,buf2);
}
sleep(TERM_COMING);
}
}
/*
void *weight_read(void *data){
int loadcell_fd = *(int*)data;
int i, test;
long buffer[1];
long sample[5];
long avg;
while(1){
*buffer = -1;
while(*buffer < 3000 || *buffer >= 200000){
usleep(100);
read(loadcell_fd,buffer,4);
}
}
test = 0;
while(test<5){
test = 0;
avg=0;
for(i=0;i<5;i++){
read(loadcell_fd,buffer,4);
while(*buffer < 0 || *buffer >= 0x7fffff){
usleep(100000);
read(loadcell_fd,buffer,4);
}
//printf("%ld ",*buffer);
sample[i] = *buffer;
avg += sample[i];
}
avg /= 5;
for(i=0;i<5;i++){
if((sample[i] - avg) < (avg*0.1)
&& (sample[i] - avg) > -(avg*0.1)){
test++;
//printf("test+ ");
}
//else printf("test- ");
}
//printf("avg: %ld \n",avg);
}
tare = avg;
while(1){
test = 0;
avg = 0;
for(i=0;i<3;i++){
read(loadcell_fd,buffer,4);
while(*buffer < 0 || *buffer >= 0x7fffff){
usleep(100000);
read(loadcell_fd,buffer,4);
}
sample[i] = *buffer;
avg += sample[i];
}
avg /= 3;
//printf("avg: %ld / ",avg);
for(i=0;i<3;i++){
if((sample[i] - avg) < (avg*0.1)
&& (sample[i] - avg) > -(avg*0.1)){
test++;
//printf("%ld+ ",sample[i]);
}
//else printf("%ld- ",sample[i]);
}
//printf("\n");
if(test == 3){
weight = avg - tare;
//printf("weighted : %ld",weight);
}
sleep(1);
}
}
*/
int main(void){
pthread_t waterThread, hsReadThread, incomeCheckThread, weightThread;
//setbuf(stdout, NULL);
int rc = wiringPiSetupGpio();
if (rc != 0) {
printf("Failed to wiringPiSetupGpio()\n");
return 0;
}
// setup trafficlight
pinMode(LED_PED_GREEN, OUTPUT);
pinMode(LED_CAR_RED, OUTPUT);
pinMode(LED_CAR_YELLOW, OUTPUT);
pinMode(LED_CAR_GREEN, OUTPUT);
/*
// setup weight
int loadcell_dev = open(LOADCELL_DEV_PATH_NAME, O_RDWR < 0);
if(loadcell_dev < 0){
printf("Failed to open loadcell device\n");
return -1;
}
if(pthread_create(&weightThread, NULL, weight_read, (void *)&loadcell_dev) < 0){
perror("thread create error: ");
exit(0);
}
// waiting tare
printf("init weight tare, plz wait..\n");
while(1){
if(tare>0) break;
}
printf("tare init done: %ld\n",tare);
*/
// setup water
int waterdev = open(SPI_DEV0_PATH, O_RDWR < 0);
if(waterdev < 0){
printf("Failed to open water device\n");
return -1;
}
if(pthread_create(&waterThread, NULL, water_read, (void *)&waterdev) < 0){
perror("thread create error: ");
exit(0);
}
// setup hs
pinMode(HS_TRIG, OUTPUT);
pinMode(HS_ECHO, INPUT);
digitalWrite(HS_TRIG, LOW);
if(pthread_create(&hsReadThread, NULL, hs_read, (void *)NULL) < 0){
perror("thread create error: ");
exit(0);
}
if(pthread_create(&incomeCheckThread, NULL, incoming_validate, (void *)NULL) < 0){
perror("thread create error: ");
exit(0);
}
int yellowTime;
int pedestrianTime;
int extendCount;
while(1){
digitalWrite(LED_PED_GREEN,LOW); // pedestrian = red
digitalWrite(LED_CAR_RED,LOW);
digitalWrite(LED_CAR_YELLOW,LOW);
digitalWrite(LED_CAR_GREEN,HIGH); // car = green
while(distance<0){
printf("waiting pedestrian now..\n");
sleep(MAIN_WAITTIME);
}
if(distance < HS_WAIT_THRESHOLD){
printf("pedestrian accepted. validating now..\n");
sleep(MAIN_WAITTIME);
if(distance < HS_WAIT_THRESHOLD && distance != -1){
// pedestrian waited enough, give him signal
printf("pedestrian validated. turn on yellow\n");
if(adc_value > WATER_THRESHOLD){
// road is slippy, long yellow light time
yellowTime = MAIN_WAITTIME *2;
}
else{
yellowTime = MAIN_WAITTIME;
}
digitalWrite(LED_CAR_YELLOW,HIGH);
digitalWrite(LED_CAR_GREEN,LOW); // car = yellow
printf("yellow-> sleep %d\n",yellowTime);
sleep(yellowTime);
digitalWrite(LED_PED_GREEN,HIGH); // pedestrian = green
digitalWrite(LED_CAR_RED,HIGH);
digitalWrite(LED_CAR_YELLOW,LOW); // car = red
pedestrianTime = MAIN_WAITTIME *5;
extendCount = 0;
while(pedestrianTime > 0){
sleep(MAIN_WAITTIME);
pedestrianTime -= MAIN_WAITTIME;
if(weight < LOADCELL_THRESHOLD
&& isPedestrianComing == TRUE
&& extendCount < 3){
// car is NOT waiting, pedestrian coming.
pedestrianTime += MAIN_WAITTIME;
extendCount++;
digitalWrite(LED_PED_GREEN,LOW);
usleep(100000);
digitalWrite(LED_PED_GREEN,HIGH);
usleep(100000);
digitalWrite(LED_PED_GREEN,LOW);
usleep(100000);
digitalWrite(LED_PED_GREEN,HIGH);
usleep(100000);
printf("pedestrian ++, pedestrian = %d\n", pedestrianTime);
}
else{
printf("pedestrian --, pedestrian = %d\n", pedestrianTime);
}
}
}
else{
printf("pedestrian declined, move to first step..\n");
}
}
}
digitalWrite(LED_PED_GREEN,LOW);
digitalWrite(LED_CAR_RED,LOW);
digitalWrite(LED_CAR_GREEN,LOW);
return 0;
}
cmd_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.ko := ld -r -EL -T ./scripts/module-common.lds -T ./arch/arm/kernel/module.lds --build-id -o /home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.ko /home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.o /home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.mod.o ; true
cmd_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.mod.o := gcc -Wp,-MD,/home/pi/Workspace/project_6/loadcell_dev/.loadcell_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='"loadcell_dev.mod"' -DKBUILD_MODNAME='"loadcell_dev"' -DMODULE -c -o /home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.mod.o /home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.mod.c
source_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.mod.o := /home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.mod.c
deps_/home/pi/Workspace/project_6/loadcell_dev/loadcell_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/Workspace/project_6/loadcell_dev/loadcell_dev.mod.o: $(deps_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.mod.o)
$(deps_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.mod.o):
cmd_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.o := gcc -Wp,-MD,/home/pi/Workspace/project_6/loadcell_dev/.loadcell_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='"loadcell_dev"' -DKBUILD_MODNAME='"loadcell_dev"' -c -o /home/pi/Workspace/project_6/loadcell_dev/.tmp_loadcell_dev.o /home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.c
source_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.o := /home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.c
deps_/home/pi/Workspace/project_6/loadcell_dev/loadcell_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/Workspace/project_6/loadcell_dev/loadcell_dev.o: $(deps_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.o)
$(deps_/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.o):
/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.ko
/home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.o
KERNEL_DIR = /lib/modules/4.19.75-v7+/build
obj-m := loadcell_dev.o
PWD := $(shell pwd)
all:
make -C $(KERNEL_DIR) M=$(PWD) modules
clean:
make -C $(KERNEL_DIR) M=$(PWD) clean
#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>
#define LOADCELL_MAJOR_NUMBER 502
#define LOADCELL_DEV_NAME "loadcell"
#define GPIO_BASE_ADDR 0x3F200000
#define GPFSEL0 0x00
#define GPSET0 0x1C
#define GPCLR0 0x28
#define GPLEV0 0x34
#define DOUT 5
#define PD_SCK 6
#define TRUE 1
#define FALSE 0
static void __iomem *gpio_base;
volatile unsigned int *gpsel0;
volatile unsigned int *gpset0;
volatile unsigned int *gpclr0;
volatile unsigned int *gplev0;
long getCount(void);
int loadcell_open(struct inode *inode, struct file *filp){
printk(KERN_ALERT "LOADCELL driver open!!\n");
gpio_base = ioremap(GPIO_BASE_ADDR, 0x60);
gpsel0 = (volatile unsigned int *)(gpio_base + GPFSEL0);
gpset0 = (volatile unsigned int *)(gpio_base + GPSET0);
gpclr0 = (volatile unsigned int *)(gpio_base + GPCLR0);
gplev0 = (volatile unsigned int *)(gpio_base + GPLEV0);
// gpio5(HX711_DOUT) = in, gpio6(HX711_CLK) = out
*gpsel0 |= (1<<18);
*gpset0 |= (1<<6);
usleep_range(60,100);
// gpio6 out -> init to 0
*gpclr0 |= (1<<6);
usleep_range(1,50);
//usleep_range(1000,1000);
return 0;
}
int loadcell_release(struct inode *inode, struct file *filp){
printk(KERN_ALERT "LOADCELL driver closed!!\n");
iounmap((void *)gpio_base);
return 0;
}
ssize_t loadcell_read(struct file *filp, char *buf, size_t size, loff_t *f_pos){
long count = -1;
while(count < 0 || count >= 0x7fffff){
count = getCount();
}
copy_to_user(buf,&count,4);
return size;
}
long getCount(void){
int i;
long count = 0;
while((*gplev0 & (1<<5))>>5 == 1){
//*gpclr0 |= (1<<6);
//usleep_range(1000,1000);
}
for(i=0;i<24;i++){
*gpset0 |= (1<<6);
usleep_range(1,50);
count = count << 1;
*gpclr0 |= (1<<6);
if((*gplev0 & (1<<5))>>5) count++;
usleep_range(1,50);
//if((*gplev0 & (1<<5))>>5) count++;
}
*gpset0 |= (1<<6);
usleep_range(1,50);
*gpclr0 |= (1<<6);
if (count & 0x800000) {
count |= (long) ~0xffffff;
}
printk("%ld",count);
return count;
}
static struct file_operations loadcell_fops= {
.owner = THIS_MODULE,
.read = loadcell_read,
.open = loadcell_open,
.release = loadcell_release
};
int __init loadcell_init(void){
if(register_chrdev(LOADCELL_MAJOR_NUMBER, LOADCELL_DEV_NAME, &loadcell_fops) < 0){
printk(KERN_ALERT "LOADCELL driver initialization fail\n");
}
else{
printk(KERN_ALERT "LOADCELL driver initialization success\n");
}
return 0;
}
void __exit loadcell_exit(void){
unregister_chrdev(LOADCELL_MAJOR_NUMBER, LOADCELL_DEV_NAME);
printk(KERN_ALERT "LOADCELL driver exit done\n");
}
module_init(loadcell_init);
module_exit(loadcell_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Jiwoong");
MODULE_DESCRIPTION("des");
File added
#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"))) = {
{ 0xf230cadf, "module_layout" },
{ 0x6bc3fbc0, "__unregister_chrdev" },
{ 0xe549e5f5, "__register_chrdev" },
{ 0xdb7305a1, "__stack_chk_fail" },
{ 0xf4fa543b, "arm_copy_to_user" },
{ 0x8f678b07, "__stack_chk_guard" },
{ 0xedc03953, "iounmap" },
{ 0x2e5810c6, "__aeabi_unwind_cpp_pr1" },
{ 0x12a38747, "usleep_range" },
{ 0xe97c4103, "ioremap" },
{ 0x7c32d0f0, "printk" },
{ 0xb1ad28e0, "__gnu_mcount_nc" },
};
static const char __module_depends[]
__used
__attribute__((section(".modinfo"))) =
"depends=";
MODULE_INFO(srcversion, "9602035B0925F6DB7FDA956");
File added
File added
sudo rmmod loadcell_dev.ko
sudo rm -rf /dev/loadcell_dev
make clean
make
sudo insmod loadcell_dev.ko
sudo mknod -m 666 /dev/loadcell_dev c 502 100
kernel//home/pi/Workspace/project_6/loadcell_dev/loadcell_dev.ko
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment