Updated FSFW #14

Merged
meierj merged 33 commits from mueller/master into develop 2021-01-23 17:24:35 +01:00
3 changed files with 91 additions and 61 deletions
Showing only changes of commit 8d0b87524e - Show all commits

147
README.md
View File

@ -171,64 +171,23 @@ from machine to machine.
4. Run build command by double clicking the created target or by right clicking
the project folder and selecting Build Project.
## Debugging the software (when workstation is directly conncected to Q7S)
## TCF-Agent
1. Assign static IP address to Q7S
* Open serial console of Q7S (Accessible via the micro-USB of the PIM, see also Q7S user maunal chapter 10.3)
* Baudrate 115200
* Login to Q7S:
* user: root
* pw: root
* Set IP address and netmask with
```sh
1. On reboot, some steps have to be taken on the Q7S. Set static IP address and netmask
```sh
ifconfig eth0 192.168.133.10
ifconfig eth0 netmask 255.255.255.0
```
2. Connect Q7S to workstation via ethernet
3. Make sure the netmask of the ehternet interface of the workstation matches the netmask of the Q7S
* When IP address is set to 192.168.133.10 and the netmask is 255.255.255.0, an example IP address for the workstation
is 192.168.133.2
4. Run tcf-agent on Q7S
2. `tcfagent` application should run automatically but this can be checked with
```sh
systemctl status tcfagent
```
* Tcf-agent is not yet integrated in the rootfs of the Q7S. Therefore build tcf-agent manually
```sh
git clone git://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent.git
cd org.eclipse.tcf.agent/agent
make CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld MACHINE=arm NO_SSL=1 NO_UUID=1
```
* Transfer executable agent from org.eclipse.tcf.agent/agent/obj/GNU/Linux/arm/Debug to /tmp of Q7S
```sh
cd obj/GNU/Linux/arm/Debug
scp agent root@192.168.133.10:/tmp
```
* On Q7S
```sh
cd /tmp
chmod +x agent
```
* Run agent
```sh
./agent
```
5. In Xilinx SDK 2018.2 right click on project → Debug As → Debug Configurations
6. Right click Xilinx C/C++ applicaton (System Debugger) → New →
7. Set Debug Type to Linux Application Debug and Connectin to Linux Agent
8. Click New
9. Give connection a name
10. Set Host to static IP address of Q7S. e.g. 192.168.133.10
11. Test connection (This ensures the TCF Agent is running on the Q7S)
12. Select Application tab
* Project Name: eive_obsw
* Local File Path: Path to eiveobsw-linux.elf (in _bin\linux\devel)
* Remote File Path: /tmp/eive_obsw.elf
3. If the agent is not running, check whether `agent` is located inside `usr/bin`.
You can run it manually there. To perform auto-start on boot, have a look at the start-up
application section.
## Debugging the software via Flatsat PC
@ -249,6 +208,9 @@ To access the console of the Q7S run the following:
picocom -b 115200 /dev/ttyUSB0
```
If the serial port is blocked for some reason, you can kill
the process using it with `q7s_kill`.
You can use `AltGr` + `X` to exit the picocom session.
To debug an application, first make sure a static IP address is assigned to the Q7S. Run ifconfig on the Q7S serial console.
@ -278,9 +240,19 @@ Note: When now setting up a debug session in the Xilinx SDK, the host must be se
## Transfering files via SCP
To transfer files from the local machine to the Q7S, use port forwarding
```sh
ssh -L 1535:192.168.133.10:22 eive@2001:7c0:2018:1099:babe:0:e1fe:f1a5
```
## Launching an application after boot
Then you can copy an `example` file like this
```sh
scp -P 1535 example root@localhost:/tmp
```
## Launching an application at start-up
Load the root partiton from the flash memory (there are to nor-flash memories and each flash holds two xdi images).
Note: It is not possible to modify the currently loaded root partition, e.g. creating directories. To do this,
@ -299,7 +271,8 @@ the parition needs to be mounted.
```
The mounted partition will be located inside the `/tmp` folder
3. Copy the executable to /bin/usr
3. Copy the executable to `/usr/bin`
4. Make sure the permissions to execute the application are set
```sh
chmod +x application
@ -344,11 +317,13 @@ the parition needs to be mounted.
More detailed information about the used q7s commands can be found in the Q7S user manual.
### Bringing up CAN
````
ip link set can0 down
ip link set can0 type can loopback off
ip link set can0 up type can bitrate 1000000
````
```sh
ip link set can0 down
ip link set can0 type can loopback off
ip link set can0 up type can bitrate 1000000
```
Following command sends 8 bytes to device with id 99 (for petalinux)
````
cansend can0 -i99 99 88 77 11 33 11 22 99
@ -470,3 +445,57 @@ p60-dock # param get out_en[0]
GET out_en[0] = 1
````
## Debugging the software (when workstation is directly conncected to Q7S)
1. Assign static IP address to Q7S
* Open serial console of Q7S (Accessible via the micro-USB of the PIM, see also Q7S user maunal chapter 10.3)
* Baudrate 115200
* Login to Q7S:
* user: root
* pw: root
2. Connect Q7S to workstation via ethernet
3. Make sure the netmask of the ehternet interface of the workstation matches the netmask of the Q7S
* When IP address is set to 192.168.133.10 and the netmask is 255.255.255.0, an example IP address for the workstation
is 192.168.133.2
4. Run tcf-agent on Q7S
* Tcf-agent is not yet integrated in the rootfs of the Q7S. Therefore build tcf-agent manually
```sh
git clone git://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent.git
cd org.eclipse.tcf.agent/agent
make CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld MACHINE=arm NO_SSL=1 NO_UUID=1
```
* Transfer executable agent from org.eclipse.tcf.agent/agent/obj/GNU/Linux/arm/Debug to /tmp of Q7S
```sh
cd obj/GNU/Linux/arm/Debug
scp agent root@192.168.133.10:/tmp
```
* On Q7S
```sh
cd /tmp
chmod +x agent
```
* Run agent
```sh
./agent
```
5. In Xilinx SDK 2018.2 right click on project → Debug As → Debug Configurations
6. Right click Xilinx C/C++ applicaton (System Debugger) → New →
7. Set Debug Type to Linux Application Debug and Connectin to Linux Agent
8. Click New
9. Give connection a name
10. Set Host to static IP address of Q7S. e.g. 192.168.133.10
11. Test connection (This ensures the TCF Agent is running on the Q7S)
12. Select Application tab
* Project Name: eive_obsw
* Local File Path: Path to eiveobsw-linux.elf (in _bin\linux\devel)
* Remote File Path: /tmp/eive_obsw.elf

View File

@ -43,7 +43,7 @@ void InitMission::initTasks(){
/* TMTC Distribution */
PeriodicTaskIF* TmTcDistributor = TaskFactory::instance()->
createPeriodicTask("DIST", 40, PeriodicTaskIF::MINIMUM_STACK_SIZE,
0.100, nullptr);
0.2, nullptr);
ReturnValue_t result = TmTcDistributor->addComponent(
objects::CCSDS_PACKET_DISTRIBUTOR);
if(result!=HasReturnvaluesIF::RETURN_OK){
@ -169,6 +169,7 @@ void InitMission::initTasks(){
PusMedPrio->startTask();
PusLowPrio->startTask();
// P60DockTask->startTask();
#if OBSW_ADD_TEST_CODE == 1

View File

@ -142,7 +142,7 @@ csp_iface_t * csp_can_socketcan_init(const char * ifc, int bitrate, int promisc)
struct sockaddr_can addr;
pthread_t rx_thread;
printf("Init can interface %s\n", ifc);
printf("-I-: Initiating CAN interface %s\n", ifc);
#ifdef CSP_HAVE_LIBSOCKETCAN
/* Set interface up */