Blink

pymelab@workstation:~/CODK/CODK-M/x86-samples$ cd Blink/
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$ ls
Makefile  outdir  prj.conf  prj.mdef  src
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$ ls -als src/
total 20
4 drwxrwxr-x 2 pymelab pymelab 4096 oct 23 18:55 .
4 drwxrwxr-x 4 pymelab pymelab 4096 oct 23 19:43 ..
0 lrwxrwxrwx 1 pymelab pymelab   52 oct 23 18:55 arduino -> /home/pymelab/CODK/CODK-M/x86-samples/common/arduino
4 lrwxrwxrwx 1 pymelab pymelab   64 oct 23 18:55 arduino101_services -> /home/pymelab/CODK/CODK-M/x86-samples/common/arduino101_services
4 -rw-rw-r-- 1 pymelab pymelab  922 oct 23 18:55 blink.c
4 -rw-rw-r-- 1 pymelab pymelab   65 oct 23 18:55 Makefile
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$ make pristine
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$ make
Using /home/pymelab/CODK/zephyr/boards/arduino_101/arduino_101_factory_defconfig as base
Merging /home/pymelab/CODK/zephyr/kernel/configs/micro.config
Merging prj.conf
warning: (I2C_QMSI) selects DMA_QMSI which has unmet direct dependencies (DMA && QMSI)
#
# configuration written to .config
#
make[1]: se ingresa al directorio «/home/pymelab/CODK/zephyr»
make[2]: se ingresa al directorio «/home/pymelab/CODK/CODK-M/x86-samples/Blink/outdir»
  GEN     ./Makefile
scripts/kconfig/conf --silentoldconfig Kconfig
warning: (I2C_QMSI) selects DMA_QMSI which has unmet direct dependencies (DMA && QMSI)
warning: (I2C_QMSI) selects DMA_QMSI which has unmet direct dependencies (DMA && QMSI)
make[2]: se sale del directorio «/home/pymelab/CODK/CODK-M/x86-samples/Blink/outdir»
make[2]: se ingresa al directorio «/home/pymelab/CODK/CODK-M/x86-samples/Blink/outdir»
  Using /home/pymelab/CODK/zephyr as source for kernel
  GEN     ./Makefile
  CHK     include/generated/version.h
  UPD     include/generated/version.h
  HOSTCC  scripts/gen_idt/gen_idt.o
  HOSTLD  scripts/gen_idt/gen_idt
  CHK     misc/generated/configs.c
  UPD     misc/generated/configs.c
  CHK     include/generated/offsets.h
  UPD     include/generated/offsets.h
  CHK     misc/generated/sysgen/prj.mdef
  UPD     misc/generated/sysgen/prj.mdef
  LD      lib/libc/minimal/source/stdlib/built-in.o
  CC      lib/libc/minimal/source/stdout/fprintf.o
  CC      lib/libc/minimal/source/stdout/prf.o
  CC      lib/libc/minimal/source/stdout/sprintf.o
  CC      lib/libc/minimal/source/stdout/stdout_console.o
  LD      lib/libc/minimal/source/stdout/built-in.o
  CC      lib/libc/minimal/source/string/string.o
  LD      lib/libc/minimal/source/string/built-in.o
  LD      lib/libc/minimal/source/built-in.o
  LD      lib/libc/minimal/built-in.o
  LD      lib/libc/built-in.o
  LD      lib/built-in.o
  CC      kernel/microkernel/k_task.o
  CC      kernel/microkernel/k_idle.o
  CC      kernel/microkernel/k_init.o
  CC      kernel/microkernel/k_command_packet.o
  CC      kernel/microkernel/k_move_data.o
  CC      kernel/microkernel/k_ticker.o
  CC      kernel/microkernel/k_memory_map.o
  CC      kernel/microkernel/k_memory_pool.o
  CC      kernel/microkernel/k_irq.o
  CC      kernel/microkernel/k_nop.o
  CC      kernel/microkernel/k_offload.o
  CC      kernel/microkernel/k_event.o
  CC      kernel/microkernel/k_mailbox.o
  CC      kernel/microkernel/k_mutex.o
  CC      kernel/microkernel/k_fifo.o
  CC      kernel/microkernel/k_semaphore.o
  CC      kernel/microkernel/k_timer.o
  CC      kernel/microkernel/k_pipe_buffer.o
  CC      kernel/microkernel/k_pipe.o
  CC      kernel/microkernel/k_pipe_get.o
  CC      kernel/microkernel/k_pipe_put.o
  CC      kernel/microkernel/k_pipe_util.o
  CC      kernel/microkernel/k_pipe_xfer.o
  CC      kernel/microkernel/k_nano.o
  CC      kernel/microkernel/k_server.o
  LD      kernel/microkernel/built-in.o
  CC      kernel/nanokernel/nano_fiber.o
  CC      kernel/nanokernel/nano_lifo.o
  CC      kernel/nanokernel/nano_fifo.o
  CC      kernel/nanokernel/nano_stack.o
  CC      kernel/nanokernel/nano_sys_clock.o
  CC      kernel/nanokernel/nano_context.o
  CC      kernel/nanokernel/nano_init.o
  CC      kernel/nanokernel/nano_sema.o
  CC      kernel/nanokernel/version.o
  CC      kernel/nanokernel/device.o
  CC      kernel/nanokernel/wait_q.o
  CC      kernel/nanokernel/nano_sleep.o
  CC      kernel/nanokernel/nano_timer.o
  CC      kernel/nanokernel/ring_buffer.o
  CC      kernel/nanokernel/errno.o
  CC      kernel/nanokernel/timeout_q.o
  LD      kernel/nanokernel/built-in.o
  LD      kernel/built-in.o
  CC      misc/printk.o
  LD      misc/debug/built-in.o
  CC      misc/generated/configs.o
  CC      misc/generated/sysgen/kernel_main.o
  LD      misc/generated/sysgen/built-in.o
  LD      misc/generated/built-in.o
  LD      misc/built-in.o
  LD      net/built-in.o
  CC      boards/arduino_101/pinmux.o
  CC      boards/arduino_101/board.o
  LD      boards/arduino_101/built-in.o
  LD      boards/built-in.o
  LD      ext/fs/built-in.o
  CC      ext/hal/qmsi/drivers/clk.o
  CC      ext/hal/qmsi/drivers/qm_flash.o
  CC      ext/hal/qmsi/soc/quark_se/drivers/power_states.o
  CC      ext/hal/qmsi/soc/quark_se/drivers/vreg.o
  CC      ext/hal/qmsi/drivers/qm_i2c.o
  CC      ext/hal/qmsi/drivers/qm_pwm.o
  CC      ext/hal/qmsi/drivers/qm_gpio.o
  CC      ext/hal/qmsi/drivers/qm_uart.o
  CC      ext/hal/qmsi/drivers/qm_dma.o
  CC      ext/hal/qmsi/drivers/qm_spi.o
  CC      ext/hal/qmsi/drivers/qm_pinmux.o
  LD      ext/hal/qmsi/built-in.o
  LD      ext/hal/built-in.o
  LD      ext/lib/crypto/built-in.o
  LD      ext/lib/built-in.o
  LD      ext/built-in.o
  CC      usb/usb_device.o
  CC      usb/class/cdc_acm.o
  LD      usb/class/built-in.o
  LD      usb/built-in.o
  LD      fs/built-in.o
  CC      arch/x86/core/cpuhalt.o
  CC      arch/x86/core/msr.o
  CC      arch/x86/core/dynamic.o
  CC      arch/x86/core/intconnect.o
  CC      arch/x86/core/excconnect.o
  CC      arch/x86/core/sys_fatal_error_handler.o
  AS      arch/x86/core/crt0.o
  AS      arch/x86/core/cache_s.o
  CC      arch/x86/core/cache.o
  AS      arch/x86/core/excstub.o
  AS      arch/x86/core/intstub.o
  AS      arch/x86/core/swap.o
  CC      arch/x86/core/thread.o
  CC      arch/x86/core/strtask.o
  CC      arch/x86/core/fatal.o
  LD      arch/x86/core/built-in.o
  CC      arch/x86/soc/quark_se/soc.o
  CC      arch/x86/soc/quark_se/soc_config.o
  CC      arch/x86/soc/quark_se/eoi.o
  CC      arch/x86/soc/quark_se/power.o
  AS      arch/x86/soc/quark_se/soc_power.o
  LD      arch/x86/soc/quark_se/built-in.o
  LD      arch/x86/built-in.o
  LD      arch/built-in.o
  CC      drivers/console/uart_console.o
  CC      drivers/console/ipm_console_receiver.o
  LD      drivers/console/built-in.o
  CC      drivers/gpio/gpio_api_compat.o
  CC      drivers/gpio/gpio_qmsi.o
  LD      drivers/gpio/built-in.o
  CC      drivers/i2c/i2c_qmsi.o
  LD      drivers/i2c/built-in.o
  CC      drivers/interrupt_controller/system_apic.o
  CC      drivers/interrupt_controller/loapic_intr.o
  CC      drivers/interrupt_controller/ioapic_intr.o
  LD      drivers/interrupt_controller/built-in.o
  CC      drivers/ipm/ipm_quark_se.o
  LD      drivers/ipm/built-in.o
  CC      drivers/pinmux/dev/pinmux_dev_qmsi.o
  LD      drivers/pinmux/dev/built-in.o
  LD      drivers/pinmux/built-in.o
  CC      drivers/pwm/pwm_qmsi.o
  LD      drivers/pwm/built-in.o
  LD      drivers/random/built-in.o
  CC      drivers/serial/uart_qmsi.o
  LD      drivers/serial/built-in.o
  CC      drivers/spi/spi_qmsi.o
  LD      drivers/spi/built-in.o
  CC      drivers/timer/loapic_timer.o
  CC      drivers/timer/sys_clock_init.o
  LD      drivers/timer/built-in.o
  CC      drivers/usb/device/usb_dc_dw.o
  LD      drivers/usb/device/built-in.o
  LD      drivers/usb/built-in.o
  LD      drivers/built-in.o
  CC      src/arduino/serial_print.o
  C++     src/arduino/variant.o
  CC      src/arduino/WInterrupts.o
/home/pymelab/CODK/CODK-M/x86-samples/Blink/src/arduino/WInterrupts.c: In function 'attachInterrupt':
/home/pymelab/CODK/CODK-M/x86-samples/Blink/src/arduino/WInterrupts.c:85:31: warning: passing argument 2 of 'gpio_init_callback' from incompatible pointer type [-Wincompatible-pointer-types]
  gpio_init_callback(&gpio_cb, callback, BIT(zephyrDescription[pin].zephyrPin1));
                               ^
In file included from /home/pymelab/CODK/CODK-M/x86-samples/Blink/src/arduino/WInterrupts.c:22:0:
/home/pymelab/CODK/zephyr/include/gpio.h:290:20: note: expected 'gpio_callback_handler_t {aka void (*)(struct device *, struct gpio_callback *, unsigned int)}' but argument is of type 'void (*)(void)'
 static inline void gpio_init_callback(struct gpio_callback *callback,
                    ^
  CC      src/arduino/wiring_analog.o
  CC      src/arduino/wiring.o
  CC      src/arduino/wiring_digital.o
  LD      src/arduino/built-in.o
  CC      src/arduino101_services/arduino101_services.o
  CC      src/arduino101_services/sharedmemory_com.o
  CC      src/arduino101_services/soc_ctrl.o
  CC      src/arduino101_services/cdcacm_serial.o
  LD      src/arduino101_services/built-in.o
  CC      src/blink.o
  LD      src/built-in.o
  AR      libzephyr.a
  LINK    zephyr.lnk
  SIDT    staticIdt.o
  LINK    zephyr.elf
  BIN     zephyr.bin
make[2]: se sale del directorio «/home/pymelab/CODK/CODK-M/x86-samples/Blink/outdir»
make[1]: se sale del directorio «/home/pymelab/CODK/zephyr»
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$ sudo dfu-util -a x86_app -D outdir/zephyr.bin 
sudo: imposible resolver el anfitrión workstation
dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Opening DFU USB device... ID 8087:0aba
Run-time device DFU version 0011
Found DFU: [8087:0aba] devnum=0, cfg=1, intf=0, alt=2, name="x86_app"
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0011
Device returned transfer size 2048
No valid DFU suffix signature
Warning: File has no DFU suffix
bytes_per_hash=1208
Copying data from PC to DFU device
Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
pymelab@workstation:~/CODK/CODK-M/x86-samples/Blink$
#include <zephyr.h>
#include "arduino101_services/arduino101_services.h"
#include "arduino/arduino.h"

void main (void)
{
        //setup
        int pin = 13;
        pinMode(pin, OUTPUT);

        //loop
        while(1) {
                pinMode(pin, OUTPUT);
                digitalWrite(pin, HIGH);
                delay(500);
                digitalWrite(pin, LOW);
                delay(500);
                task_yield();
        }
}

arduino/arduino.h

/*
 * Copyright (c) 2016 Intel Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef Arduino_h
#define Arduino_h


#include "variant.h"
#include "wiring_digital.h"
#include "wiring_analog.h"
#include "WInterrupts.h"
#include "wiring.h"
#include "serial_print.h"

#define LOW  0x00
#define HIGH 0x01
#define CHANGE 0x02
#define FALLING 0x03
#define RISING 0x04

#define INPUT 0x0
#define OUTPUT 0x01
#define INPUT_PULLUP 0x02

#define INVALID 255
#define SS_GPIO    0x00
#define SOC_GPIO 0x01

#ifdef __cplusplus
extern "C" {
#endif

void setup( void );
void loop( void );

typedef struct _ZephyrPinDescription
{
    uint8_t zephyrPin1;
    uint8_t zephyrPin2;
    uint8_t pinMux;
    uint8_t muxMode;
    uint8_t pwmChannel;
    uint8_t pinMode;
    uint8_t fabric;
} ZephyrPinDescription;

extern ZephyrPinDescription zephyrDescription[];

#ifdef __cplusplus
}
#endif



#endif // Arduino_h

arduino101_services/arduino101_services.h

#ifndef QUARK_SKETCH_SERVICES_H_
#define QUARK_SKETCH_SERVICES_H_

#include <device.h>
#include <gpio.h>
#include "sharedmemory_com.h"
#include "soc_ctrl.h"
#include "cdcacm_serial.h"
#include "curie_shared_mem.h"
#include "soc.h"

void arduino101_services (void);

#endif

Last updated