Posts by RSchubert

    Thanks for answering. Is it possible to give us a hint what amplifier and maybe what circut (resistors, capacitators, ...) your're using?

    I can confirm problems while debugging with the delivered toolchain.


    The GDB shell says:
    No line 48 in file "xxxx.cpp".
    ...


    It's not possible to set breakpoints in the source code because the line information in the executable seems to be completely wrong. Also the first stop that should be at "main" is somewhere in the code.


    I have turned off all optimisations and tried different debug infos (-g2 -g ...).


    I tried gdb 6.8a and 7.4.1 provided by buildroot. The problem stays the same - so maybe it's a problem of the compiler/linker.

    Is there a reference hardware design of how to connect some little speakers (e.g. 1W) to the PicoMOD7A (amplifier, resistors, capacitators, speaker)?


    The cause of my question is that we have much noise on the speaker. We're using an audio amplifier and a little speaker. We can hear all the sound we're playing on the PicoMOD correctly. But we also hear much noise. This noise seems to depend on memory access. If I don't do anything on the memory bus the noise is very silent. If there's much traffic on the memory bus (also during the complete boot process) the noise can be very loud - it's as loud as playing a soundfile.


    Thanks for any idea.

    When using double buffering and switching between the buffers it's nice to wait for the VSync.

    Code
    1. int ret=ioctl(fbfd,FBIO_WAITFORVSYNC,0);


    returns 0xFFFFFFFF - EPERM (operation not permitted).


    In the kernel sc3_fb.c driver there's a function to handle the VSync but it never gets called:


    In assembly debugging ioctl is calling "svc 0x00000000" what is returning 0xFFFFFFF2 (EFAULT - bad address).


    Thanks for help.

    It's working with:

    Code
    1. vinfo.yres_virtual=vinfo.yres<<1;
    2. if (ioctl(fbfd, FBIOPUT_VSCREENINFO, &vinfo)) {
    3. printf("Error setting variable information.\n");
    4. exit(3);
    5. }


    Thanks.

    Yes, it seems this has something to do with using sound. If I start my firmware and initialize sound

    Code
    1. snd_pcm_open(&sndHandle, "plughw:0,0", SND_PCM_STREAM_PLAYBACK, SND_PCM_ASYNC));


    this problem occurs. This is even if I don't play anything.


    When I'm using reboot and didn't start my firmware with the sound - it's working without the I2C hooking.


    I also tried to run "speaker-test" and the problem is the same - I2C hooks on software reboot.

    There's an option in the display settings of kernel configuration. Here you can set the resolution as well as the virtual resolution.

    I still have some problems using double buffering. Indeed the kernel allocates 6MB of memory (1024x1536x32 bit) but the framebuffer information is still showing a resolution of 1024x768 and also virtual resolution of 1024x768.


    Code
    1. struct fb_var_screeninfo vinfo;
    2. ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo


    Code
    1. # cat /sys/class/graphics/fb0/virtual_size
    2. 1024,768


    Any Idea? Thanks.

    When restarting the PicoMOD7A in software (e.g. by executing "reboot") the I2C driver isn't initing correctly and is blocking the kernel. Here I attached my kernel debug:

    When rebooting by power off everything is starting correctly.


    Thanks for help.

    Exactly 10 mins after power on the display turns black. Seens like some kind of power saving. The only way to turn it on is a reboot. Where can I setup this parameters? The values in /sys/class/backlight/... stay the same as if it would remain on.


    Thanks for help.

    I changed the MAX_ZONE_ORDER to value 12. Now I can allocate the 6MB Display memory and it's working with that "ungood feeling".


    The solution with predefined memory blocks for display operations in U-Boot would be great in one of the next updates.


    Thanks very much.

    On PicoMOD7 there was the possiblity to enable two framebuffers. So I can draw on one buffer then change the buffers and draw on the other buffer and so on (double buffering to avoid flicker). I tried to change the virtual resolution in kernel configuration to the double height but that ends in error allocating memory for framebuffer.


    Resolution: 1024x768x32bit
    virt. Resolution: 1024x768x32bit is working but with only one buffer
    virt. Resolution: 1024x1536x32bit is not working (s3c-fb s5pv210-fb: failed to allocate display memory)


    Is there another way to enable double buffering?


    Thanks for help.

    The RootFS from F&S as well as my own RootFS are mount read only. Where can I change this? The bootargs don't set to ro, in etc/fstab it's mount as rw, I also find no setting in buildroot config...


    Thanks again for help.