I have a custom board which i'm trying to test a ping test using Eth from Microblaze master with no DDR Support.
Technically , to check if this option is actually exists , i took an EVB - KCU105. And as part of my testing, i have used a stable example project(Configure Microblaze Design) , &remove DDR checkbox from it and try to run example design that include Microblaze on Kintex Ultrascale KCU105 EVB.
After exporting bitstream into XSDK(2018.3) I have used lwIP Echo Server template within the xsdk
in order to try pinging to other LAN point.
it seems that it doesn't work .
So i tried one more time to figure out if i did something wrong, &i tried to use the same project - with DDR , then it works.
So my question is, is there any option to run ETH function with microblaze with no DDR on?
Thanks .
Amir .
Your question is:
So my question is, is there any option to run ETH function with microblaze with no DDR on?
Answer:
In principle, Yes. And I remember I have come across such project in the past where I was trying not to have DDR. And I remember this post provided me good pointers.
Related
I want to use DMtimer of beaglebone to set timer of 1 minute.Can anybody guide me with the procedure for the same?I have worked with Pic micro controller and it's timers so I know the working of timer,but in terms of programming and register handling in the beaglebone it seems to be work in different manner.can anybody please guide me through this?
following are the details of my beaglebone green
uname -r
4.14.71-ti-r80
cat /etc/dogtag
BeagleBoard.org Debian Image 2018-10-07
cat /etc/debian_version
9.5
trying to write c code in linux ubuntu
The following answer assumes that you are trying to create a user space program (as opposed to kernel space code such as a typical driver).
On a full OS such as Linux you don't manipulate registers to program a timer. You rather make use of kernel APIs.
Depending on the structure of your program there are a number of options.
If you have an event loop (via poll or select) you might want to use the timerfd API. See http://man7.org/linux/man-pages/man2/timerfd_create.2.html.
If you want an asynchronous notification via a signal you can use setitimer. See: http://man7.org/linux/man-pages/man2/setitimer.2.html
In general I would try to avoid signals due to their asynchronous nature.
I am working with openmote-cc2538 for the project: https://github.com/cetic/6lbr/wiki
Here when I was trying to flash openmote with this command
sudo make TARGET=cc2538dk BOARD=openmote-CC2538 bootload0/dev/ttyUSB0 slip-radio.upload
This error message is displayed
ERROR:Cant CONNECT TO TARGET:Ensure bootloader is started(no answer on sync sequence)
cc2538 bsl.py script is available for uploading binary to openmote. But I don't have much experience about this. Can anybody give me some suggestions regarding how to proceed??
Grab a scope and probe different digital I/O pins on the CC2538. Typically a bootloader will initialize all the ports on the chip and you will see them change state, which is an indication that the bootloader is indeed running. I would guess one of the LEDs would change state as well (which doesn't require a scope).
while trying to connect veins and inet, I've noticed my cars don't register
the nic80211p interfaceEntry in the InterfaceTable.
Indeed, the interfacetable contains only loopback l0 for every node.
In the omnet/inet manual it is written :
"Interfaces are registered dynamically in the initialization phase by modules that represent
network interface cards (NICs). The INET Framework makes use of the multi-stage initialization feature of OMNeT++, and interface registration takes place in the first stage (i.e. stage
INITSTAGE_LINK_LAYER
)."
So if I understand the registration shoud be done in Nic80211p.ned and specifically in Mac1609_4::initialize()?
What do you think?
Thanks for any help.
Regards,
Since this question was asked, the Veins repository on Github was amended to include a sample subproject (veins_inet) that runs an INET Framework (INET 3.4.0) simulation using Veins for nodes' mobility.
You can see the necessary code (and, after clicking on Browse Files, you can download a .zip archive of the complete project) on https://github.com/sommer/veins/commit/90d4586e
I need to modify a kernel module(s) to count number of packets that the machine has sent / received over my wireless adapter for the linux 2.6 kernel. Please let me know which modules should I modify. Any references would also be helpful.
I am not very sure about wireless adapter, but I think it is similar to a wired one. For wired and wireless NIC, you can use ifconfig eth0 command, then in the output, you will see one or two lines telling you the number of packets sent(TX) or received(RX).
To get the same information from the kernel module, one way is to modify the device driver for the network card. One tutorial about rtl8139 (wired one) is here: http://linuxgazette.net/156/jangir.html
Also, I think there are some standard kernel interface that you can use to get the same info. For example, tp->stats.tx_packets mentioned in the above link.
If you're interested in IP packets you should consider creating a kernel module that uses netfilter hooks. It's very simple, here take a look at this:
http://www.netfilter.org/documentation/HOWTO/netfilter-hacking-HOWTO-3.html
Netfilter is primarily intended for firewalling, but it can do what you want and you don't need to mess with other kernel modules. Hope it helps.
cat /proc/net/dev
is probably not what you want, but then explain why.
I am currenlty trying to monitor my battery status through SMBus.
I have a battery along with a control board that constantly outputs the battery status.
This control board is then connected to my mother board through a I2C-USB module.
I need to write a program to recognize the SMBus connection and transmit the battery status to the user.
I'm a beginner when it comes to dealing with smart batteries and I2C/SMBus, and I'm somewhat lost with how to approach this problem.
Any help of suggestions would be appreciated. Thanks.
Your question is a bit lacking. What kind of I2C-USB module? Or rather does it come with a Linux driver? If it does you probably won't need to write one. An application will do. You can read more about I2C and SMBus here.
Basically what you need is the I2C address of the control board (a single byte). When you have the address you (as the master) issue read commands over the I2C bus to the control board using its address and reads the response. If there's a driver for the I2C-USB module this should be straightforward enough. Plug in the device and open() the device (/dev/[i2c-usb-name] where [i2c-usb-name] is the name of the device). Then follow the driver implementer's guide how to setup and send data over that device (typically using read()/write() or ioctl()). Here are some additional information on working with I2C from user space: http://www.mjmwired.net/kernel/Documentation/i2c (select topics in the menu on the left hand side).
If you must write the driver yourself, the first stop for a Linux device driver beginner is the LDD3. Read it, it's quite a pleasant read.