Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7173571
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T15:51:10+00:00 2026-05-28T15:51:10+00:00

I use v-usb library for my project. I wrote code and i want compile

  • 0

I use v-usb library for my project.
I wrote code and i want compile it, but unfortunately I have an error which I’m unable to resolve.
Here is my screen-shot:

enter image description here

Description Resource    Path    Location    Type
make: *** [USB_module.elf] Error 1  USB_module          C/C++ Problem
undefined reference to `usbInit'    main.c  /USB_module     C/C++ Problem
undefined reference to `usbMsgPtr'  main.c  /USB_module     C/C++ Problem
undefined reference to `usbPoll'    main.c  /USB_module     C/C++ Problem

This situation is for me strange because i have in header this:

#include "usbconfig.h"
#include "usbdrv/usbdrv.h"
#include "usbdrv/oddebug.h"

And usbdrv/usbdrv.h defines the USBpoll function:

Shouldn’t the compiler be able to compile it?

Here is my project: http://goo.gl/P6ujK

And here is my entire workspace directory: http://minus.com/mbhTkJuvOK#1

Here is my code: main.c:

/*
 * main.c
 *
 *  Created on: 25-01-2012
 *      Author: Bordeux
 */
#define F_CPU 12000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <avr/wdt.h>

#include "usbconfig.h"
#include "usbdrv/usbdrv.h"
#include "usbdrv/oddebug.h"


#define DDS1_SDA (1<<1)          //PORTB1
#define DDS_SCL  (1<<3)          //PORTB3
#define DDS_UPDATE (1<<4)        //PORTB4

static uchar usb_val;

USB_PUBLIC uchar usbFunctionWrite(uchar *data, uchar len) //sends len bytes to DDS_SDA
{
    uchar i;
    uchar b;
    uchar adr=0;
    while (len!=0)
    {
        b=1;
        for (i=0; i<8; i++)
        {
            if (b & data[adr])
            {
                PORTB = (PORTB | DDS1_SDA) & ~DDS_SCL;
                PORTB = PORTB | DDS_SCL;
            }
            else
            {
                PORTB = PORTB & (~DDS1_SDA & ~DDS_SCL);
                PORTB = PORTB | DDS_SCL;
            }
            b=b<<1;
        }
        len--;
        adr++;
    }
    if (usb_val)
    {
        PORTB = PORTB | DDS_UPDATE;// update DDS
        PORTB = PORTB & ~DDS_UPDATE;
    }
    return 1;
}


USB_PUBLIC uchar usbFunctionSetup(uchar data[8])
{
    usbRequest_t *rq = (void *)data;
    static uchar    replyBuf[3];
    usbMsgPtr = replyBuf;
    if(rq->bRequest == 0)         // ECHO value
    {
        replyBuf[0] = data[2];    // rq->bRequest identical data[1]!
        replyBuf[1] = data[3];
        return 2;
    }
    if(rq->bRequest == 1)         // set port directions
    {
        // DDRA = data[2];
        DDRB = data[3];            
        DDRD = data[4] & (~USBMASK & ~(1 << 2)); // protect USB interface
        return 0;
    }
    if(rq->bRequest == 2)         // read ports
    {
        // replyBuf[0] = PINA;
        replyBuf[1] = PINB;
        replyBuf[2] = PIND;
        return 3;
    }
    if(rq->bRequest == 3)         // read port states
    {
        // replyBuf[0] = PORTA;
        replyBuf[1] = PORTB;
        replyBuf[2] = PORTD;
        return 3;
    }
    if(rq->bRequest == 4)         // set ports
    {
        // PORTA = data[2];
        PORTB = data[3];
        PORTD = data[4];
        return 0;
    }
    if(rq->bRequest == 5)        // use usbFunctionWrite to transfer len bytes to DDS
    {
        usb_val = data[2];       // usb_val!=0 => DDS update pulse after data transfer
        return 0xff;
    }
    if(rq->bRequest == 6)
    {
        PORTB = PORTB | DDS_UPDATE;  // issue update pulse to DDS
        PORTB = PORTB & ~DDS_UPDATE;
        return 0;
    }
    replyBuf[0] = 0xff;          // return value 0xff => command not supported
    return 1;
}


int main(void)
{
    wdt_enable(WDTO_1S);         // set Watchdog Timer
    odDebugInit();
    PORTB=0xe0;                  // Set PortB 0-4 zero
    DDRB=0x1f;                   // Set PORTB 0-4 output
    PORTD = 0;                   /* no pullups on USB pins                     */
    DDRD = ~USBMASK & ~(1 << 2); /* all outputs except USB data and PD2 = INT0 */
    usbInit();
    sei();
    for(;;)                      /* main event loop                            */
    {
        wdt_reset();             // restart watchdog timer
        usbPoll();
    }
    return 0;
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T15:51:11+00:00Added an answer on May 28, 2026 at 3:51 pm

    You need to link against whatever file supplies usbInit etc., from the looks of your screen shots you’ve shown the file usbdrv.c, but not actually compiled/linked it into your project. Only usbdrv.h is showing in the tree view.

    #includeing the header file shows the compiler the declaration of the function, you need to make sure it sees the definition somewhere too.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to use Javalibusb library to connect PIC18f4550 via a USB connection to
I want to detect when my touchpad is clicked! I normally use a usb
I have a really short question: Is it possible to communicate/use USB devices on
Is it possible to use a USB device peripheral that I have created directly
I have an authentication key (USB dongle) that I would like to use in
I have a built in webcam (HP) and an USB webcam. Whenever I use
If I use a modified usb skeleton driver on Linux and I insmod the
use this website a lot but first time posting. My program creates a number
Use case: I've just entered insert mode, and typed some text. Now I want
I'm trying to use someone else's [c] code that controls a linux shell over

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.