What is the high level software architecture of Ath11k driver? - wifi

Hi I am looking for a high level software architecture of ath11k driver. I am trying to write a 11ax driver from scratch, for that I want to understand the high level architecture of ath11k. ath10k is a lot different from ath11k, so I cannot use it to compare with it. If you could suggest any books related to 802.11ax device drivers, it will be helpful.

Very ambitious goal.
Take a look here.
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/ath11k
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/tree

Related

Alternative ZigBee Stack

Is there any stack that can be an alternative for the Microchip ZigBee Stack? I have a PIC18F27J53 microcontroller and MRF24J40MB Transceiver. I tried to read and understand the examples included in the Microchip ZigBee Stack but I have no luck. I think the examples are too complex for beginners like me. I only intend to send and receive data to and from sensor nodes. Also, PIC18F27J53 is not included in the Zena Configuration Tool device list.
Any help will be much appreciated.
1.You can try cc2500 rf pro. Its easier, cleaner and quite inexpensive than ZigBee.
2. OR even better you can try to use ZigBee with the arduino. You have inbuilt libraries, and if you say you are a beginner, then sending data will be as easy as writing to the UART port, which is by the way a one line command. 3. OR if you dont mind lower frequencies you can go for the standard rf module (or so it is called). You can find more about it, and how to use it here. http://extremeelectronics.co.in/rf/rf-communication-between-microcontrollers-part-i/
I would go for Option 2 first, then 3 then 1. (since you said that you are a beginner).

Robot Middleware (OpenRTM, OROCOS, RSCA, ASEBA etc.) support port to an RTOS(Micrium, QNX, Keil, FreeRTOS?

I have question to ask you.
There are some open source robotic middleware out there that contains some libraries for robotic developers to do I/O works. They are really powerfull tools that save a lot of time.
They are such as OpenRTM, OROCOS, RSCA etc...
In a project, we will developing a robotic wheelchair that do some autonomous behaviors such as obstacle avoidance, move2goal, follow coridor etc. We'll use an RTOS to organize I/O stuff and selection operations for the behaviors.
What I'm wondering is if any of the RTOS(mcOS-II, QNX, Keil etc.) has port to these middlewares? Can I install them on to these RTOSes?
Sorry for my bad English. Hope you got what I mean.
My best regards..
I am OpenRTM-aist user.
OpenRTM-aist have QNX implementation.
http://www.openrtm.org/openrtm/ja/node/5056
Sorry, there is no english documentation for OpenRTM for QNX, please use google translate button on the site.
OpenRTM-aist is also available for Real-Time Linux (ART-Linux, real-time preemption kernel), T-Kernel (uITRON), VxWorks (developed by SEC CO. LTD.).
Sorry, they do not have english pages, but developers are of course available for english communication. Ask them in the mailiing list: I also recommend you to use openrtm-user mailing list. We had a similar question a couple days ago. You must be able to get some useful information on it.
You can find link on the official OpenRTM-aist website, described above.
Of course, english is welcome!

Getting started - creating an iPhone app that controls another (non-iOS) device via bluetooth commands

All,
Apologies in advance - this question might be too open-ended for SO.
Anyway... A friend of mine (an engineer and entrepreneur) is in the process of building a high-tech piece of lab equipment. He's asked me about the feasibility of building an iPhone/iPad/iPod application that would allow users to control the device via Bluetooth, so I'm helping him gather some information. I'm hoping to get a few pointers on how to get started. Specifically:
Would this require a native app, or could this be accomplished with HTML5 (with or without something like PhoneGap?)
Can you point me to a good primer on bluetooth networking? Everything I've found assumed a VERY high level of pre-existing knowledge.
What are the basics on how something like this is accomplished? Is there a single, established protocol for how one device "controls" another, or is bluetooth more like SSL - just a pipe that allows you to convey any type of message?
I realize this question is incredibly broad and detailed - so I'm not really looking for specifics. But obvious Google searches don't turn up much, and I'm otherwise having a hard time finding a good starting point.
Thanks in advance.
You can communicate via bluetooth in two ways: One is using the Low Energy Bluetooth capabilities of iOS 5 and newer iPhone/ipads.
https://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CoreBluetooth_Framework/_index.html#//apple_ref/doc/uid/TP40011295
Unfortunately the documentation is sparse and will require some hacking away. If you choose this route I would consider starting here and learning as much as you can about how the protocols work before hacking into the framework:
http://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx
The limitations of this route are that it might not be best for sending a lot of data. I have only built stuff that sent simple commands which it does work great for.
The other option is the external accessory framework. This will require you to get an mfi license from apple (not fun). You will also need to pay royalties. But it will do what you want. You won't need to concern yourself much with underlying protocols if you use this, the framework provides a friendly api for processing streams.
http://developer.apple.com/library/ios/#documentation/ExternalAccessory/Reference/ExternalAccessoryFrameworkReference/_index.html

What should I do as a DSP programming beginner?

I'd like to learn TI DSP programming. I am a beginner.
I have the processors : TMS320VC5505 and TMX320VC5505DZCH
What hardware should I have ?
and
How can I program the DSP ? (c or assembly)
Thank you
Get a low cost DSP evaluation board/module, such as this one form Spectrum Digital. These typically come with a cable which you can connect to a PC or Mac, and suitable development software (Code Composer Studio, in the case of TI DSPs).
DSP programming using tools like Code Composer studio is not too different from any other kind of programming. You can develop your algorithms in C, make sure they run correctly, and the profile them to see if you need to speed anything up. If you do, the first step is to use the compiler's built in optimization options. The next two steps are more DSP-specific: there might be C-callable pragma's to speed up particular math operations, like fractional fixed-point math. And finally, you can get down into the assembly language level and use the DSP-specific capabilities like circular addressing, bit-reversed addressing, and single-cycle multply-accumulate.
TI might be able to provide libraries to do some of the more common tasks, like FFT, FIR filtering, and IIR filtering, so you might be able to avoid writing (and debugging) your own assembly.

How to support multiple languages on a microcontroller?

I'm currently working on upgrading a product for the Chinese market. The target is a ARMTDMI7 with a QVGA display. Most resources I've located on the net are targeted at desktop or web programming rather than embedded devices.
Can anyone suggest some tools and
resources that might be useful?
What are the best techniques for
extracting literal strings and
communicating with translators?
I suggest looking at EasyGUI but that depends on what graphics controller you use.
EasyGUI is a tool that simplifies design of user interfaces and comes with complete source code and driver for a varity of display controllers.
For localization you can use EasyTranslate that gives the translater a graphical representation of the interface. This lets the translator see how the translated texts fit on the screen.
EasyGUI is available with unicode support aswell as right to left script.
Freetype might be good for rendering fonts.
www.freetype.org
There are many ARM microcontroller forums which will help you find what you're looking for.
Atmel has a line of ARM7 processors, and they are pretty friendly to those who make a hobby out of this, so there's a lot of information on this processor. It won't be the same, but generally the tools and libraries can be used across the ARM line so you might find some help here - you'll want to focus on the AT91SAM7 series.
If you have more specific questions, you will probably get some reasonable response here.
-Adam
It sounds like you need to upgrade an existing codebase to make it support multiple languages.
If so, the fact that this is on a microcontroller shouldn't be an issue - I'd drop that fromt he title and focus on the language you're using (c?) and ask how to convert your program for internationalisation.
This is a problem many people have solved on a variety of platforms, and the fact this you're on a microcontroller doesn't mean that the same tools and such don't apply - the relevant factor is the language you're using
-Adam

Resources