Atmel SAM3X8E ARM Cortex-M3 need bootloader program?

Before, I post a topic: Why the USB port of Atmel SAM3X8E ARM Cortex-M3 does not work?
Finally, I found the reason: the VBus is not really connected to the XUSB (+5V). Now, the PC can detect the USB device, but this USB devices can not find right driver. It is always an unknown device for the PC, and it can not be found by the Arduino development software.

Do I need to write some bootloader program into the Atmel SAM3X8E ARM Cortex-M3?

For the Arduino Due board, even we exchange the CPU Atmel SAM3X8E ARM Cortex-M3, the board is easily recognized by the related driver.

This is my first time to use the Atmel SAM3X8E ARM Cortex-M3 and ATMEGA16U2 to develop my own system board. before, I thought it should be very straightforward, actually, it is not.

Hi ybs273,

Unlike other Arduinos the SAM3X8E on the Due has a factory burned bootloader, so you don't have to write your own.

This link provides some infomation on how the SAM3X8E's bootloader works: http://playground.arduino.cc/Bootloader/DueBootloaderExplained

Arduino have worked around the bootloader so that it's not necessary to press the erase button each time you upload a sketch. Each Arduino sketch for the Due includes code that checks if the native USB port has been opened at 1200bps, if so it initiates an erase and starts the bootloader. However, as your board contains a fresh chip without a sketch, I imagine it's necessary to press the erase button to start the bootloader first time round.

Not sure whether this is the problem though?

I checked over your schematic, but couldn't find anything obvious. Are the 39R resistors 1% tolerance?

Did you follow the install instructions for Due?

If you are on Windows it states "... Windows should initiate its driver installation process once the board is plugged in, but it won't be able to find the driver on its own. You'll have to tell it where the driver is. ...", just conmtinue with the next steps.

I did install Due via Boards Manager recently, 1st on Windows because I did not know about Boards Manager when trying on Linux, and then on Linux -- both installations were fine and according the instructions.