DNP5370

From Electrolab
Revision as of 22:54, 29 May 2014 by Mael (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Purpose

When we get for the first time the DNP5370 from SSV vendor, the configuration used in it is optimized for server application. Specially, two problems appear:

  • The mutex is too long, when a process takes it the next kernel switch can't happen before 20 ms, even if the process activity goes to "sleep",
  • The use of the old "can4linux" module integrated to the target leads to a dramatic kernel panic, and a freeze.

For those 2 reasons, and also to keep an up to dated version of kernel and file system, we need to make a new target.

The purpose of this webpage is not to explain in details how does linux work, which is already documented everywhere on the web, but to give a small survivor kit to be able to make a new customized image for the dnp5370, or to maintain it after a wrong manipulation (erasing of flash memory for example.

The things I describe here comes from documentation over internet, mainly from the official Blackfin uClinux website. I'll add as much links as possible, but this page is dedicated to dnp5370 only.

Prerequisites

Before we start, we have to get several tools optimized for blackfin. Note that the common tools won't work for a blackfin, we need to use those that are optimized (and patched) for Blackfin.

So we need :

  • a toolchain, since we build a kernel and tools for a target which is not the host computer. So the generic gcc compiler won't work. See the "cross compilation" section,
  • a linux kernel distribution, blackfin dedicated,
  • a buildroot tool, specifically for Blackfin target. Note that this one comes with an integrated linux kernel directory in it, that can be used directly,
  • a bootloader, here u-boot, which will be used to start the kernel at the blackfin starting up.

All those tools will be treated in dedicated paragraphs later, with the link on the sources.

The bootloader