How to add Assembly source file to compile

Hello, I would like to ask how to add Assembly source file based on the project of simpleserial-aes.
I noticed that the makefile of the simpleserial-aes project contains the following: makefile, Makefile, Makefile.inc , Makefile.simpleserial as well as Makefile.platform.
Obviously Makefile.platform It’s nothing to do with it.
I try to add ASRC in Makefile.inc , as shown in follow, it still fails.
How can I add assembly file and C language to compile?
Sincerely hope you can instruct me.
Best wish

List Assembler source files here.

Make them always end in a capital .S. Files ending in a lowercase .s

will not be considered source files but generated files (assembler

output from the compiler), and will be deleted upon “make clean”!

Even though the DOS/Win* filesystem matches both .s and .S the same,

it will preserve the spelling of the filenames, and gcc itself does

care about how the name is spelled on its command-line.

ASRC +=
gf256mul.S
aes_sbox-asm.S

Hi,

You can just add ASRC+=gf256mul.S… directly to the project makefile. Doing it this way will add it for every project and you’ll need to put the files in the directory above, I think.

Alex

Dear Alex , thank you very much for your help. I have solved the above problems. But I have a new problem. I would like to consult how to set my sample points (I hope to collect 500 thousand points). In addition, I would like to consult how to do dual channel data acquisition?

For captures longer than the sample buffer (~24k on the Lite ~98k on the Pro), you have two options:

  1. Use streaming mode (Pro only). Note that this will limit your sample rate to 10MS/s, but will let you capture many millions of samples.
  2. Capture multiple traces with different offsets and connect them together after capture.

Regarding dual channel, you’ll need to have multiple ChipWhisperer boards. From there, you can hook them up to a computer, specify the serial number of the ChipWhisperer, and proceed as normal. For example:

scope1 = cw.scope(sn='11223348421893420883094')
scope2 = cw.scope(sn='12309189058901891954019')

If you call cw.scope() with multiple connected (but without specifying the serial number), it should print out a list of connected ChipWhisperers with serial numbers.

Alex

Thanks again for your help. I also want to consult how to modify the sampling frequency? I tried to change “self.adc.clk_freq = 7.5E6” to “self.adc.clk_freq = 7.5E6”, but It’s pity that he reported a mistake —>“(“Attempt to set unknown attribute in <class ‘chipwhisperer.capture.scopes._OpenADCInterface.TriggerSettings’>”, ‘clk_freq’)”

The ADC frequency can be set as either x1 or x4 of an internally generated clock (modifiable via scope.clock.clkgen_freq) or an external clock. See ReadTheDocs for the clock module documentation.

Alex

Thanks for your care, I have solved all the problems I encountered some time ago. I am trying to rewrite the control software of CW308 by C#. Where should I start?

I’d probably start with replicating the bottom level of the USB communication (chipwhisperer/hardware/naeusb/naeusb.py), as well at taking a look at the firmware for the microcontroller on the Lite or Nano (chipwhisperer/hardware/capture/*, should be a few levels deeper in a src folder).

I haven’t looked much at it, but you might want to take a look at the Go port of ChipWhisperer: https://github.com/google/gocw, as it may be a bit cleaner than our Python implementation.

Alex