qt 컴파일 하는데 있어서 질문 드립니다.

paeksj98의 이미지

extern unsigned long system_fclk;
extern unsigned long system_hclk;
extern unsigned long system_pclk;

드라이버 소스에 이런 식으로 커널 소스를 참고 해서 작업한게 있습니다.

저는 이부분을 가져다가 qt 소스에서 작업을 하고 싶은데 어떤식으로 해야될지 몰라서...ㅠㅠ

#include linux/module.h>
#include linux/kernel.h>
#include linux/version.h>
#include linux/init.h>
#include linux/fs.h>
#include linux/sched.h>
#include linux/interrupt.h>
#include asm/uaccess.h>
#include asm/ioctl.h>
#include asm/unistd.h>
#include inux/ioport.h>
#include asm/irq.h>
#include asm/io.h>
#include sm/arch/irqs.h>
#include asm/arch/gpio.h>
#include asm/plat-s3c24xx/clock.h>
#include asm/plat-s3c/regs-adc.h>
#include asm/plat-s3c/regs-timer.h>

이런식으로 기존 드라이버에서 사용하던 소스를 전부 가져다가 쓰려고 해도....

qt Makefile에서 kerner include 디렉터리를 어떻게 추가 해야 될지도 모르겠고.해서 도움을 청합니다.

우선은 저도 지금 하고 있는데 생각처럼 되지 않고 있네요..조은 방법있으시면 알려주세요.

system clk를 가져다가 쓸부분이 있는데 어떻게 써야될지 몰라서....

valentis의 이미지

qmake를 사용하신다면 project파일(.pro)안에 INCLUDEPATH로 헤더파일이 있는 곳을 지정하시면 됩니다.

INCLUDEPATH = /root/include /root/include/asm /root/include/linux

-------------------------------------

서영진 입니다.
Homepage : http://valentis.pe.kr
blog : http://www.lifeholic.com

-------------------------------------

서영진 입니다.
Homepage : http://valentis.pe.kr
blog : http://www.lifeholic.com

paeksj98의 이미지

#include linux/kernel.h>
#include linux/version.h>
#include linux/init.h>
#include linux/fs.h>
#include linux/sched.h>
#include asm/ioctl.h>
#include asm/unistd.h>
#include asm/irq.h>
#include asm/io.h>
#include asm/arch/irqs.h>
#include asm/plat-s3c24xx/clock.h>
#include asm/plat-s3c/regs-adc.h>
#include asm/plat-s3c/regs-timer.h>

extern unsigned long system_fclk;
extern unsigned long system_hclk;
extern unsigned long system_pclk;

static float pclk_val;
static float clk_val;

clock.h 관련 소스를 보니 clock.c에 시스템 클럭관련 부분이 있더군요...

결정적으로 clock.h 관련부분에서 문제가 생기네요...ㅠㅠ

clock.h:14:error: field 'list' has incomplete type

컴파일 에러가 뜨네요.

struct clk {
struct list_head list;
struct module *owner;
struct clk *parent;
const char *name;
int id;
int usage;
unsigned long rate;
unsigned long ctrlbit;

int (*enable)(struct clk *, int enable);
int (*set_rate)(struct clk *c, unsigned long rate);
unsigned long (*get_rate)(struct clk *c);
unsigned long (*round_rate)(struct clk *c, unsigned long rate);
int (*set_parent)(struct clk *c, struct clk *parent);
};

에러나는곳은 struct list_head list
부분인데 왜 에러가 나는지 모르겠습니다.
컴파일시 문제가 되는 몇개의 헤더파일을 삭제 했는데..그부분때문인것도 같고....

system_clk만 쓸수 있으면 되는데 여러군데서 문제가 생기네요...

조언좀 부탁드립니다.

paeksj98의 이미지

clock.c 파일부분에서 시스템 클럭에 관해 패치된 부분입니다. 여기있는 시스템 클럭만 가져다 쓰면 되는데...ㅠㅠ

/* initalise all the clocks */

int __init s3c24xx_setup_clocks(unsigned long xtal,
unsigned long fclk,
unsigned long hclk,
unsigned long pclk)
{
printk(KERN_INFO "S3C24XX Clocks, (c) 2004 Simtec Electronics\n");

/* initialise the main system clocks */

clk_xtal.rate = xtal;
clk_upll.rate = s3c2410_get_pll(__raw_readl(S3C2410_UPLLCON), xtal);

#if defined(CONFIG_MACH_rs2410)
system_fclk = fclk;
system_hclk = hclk;
system_pclk = pclk;
#endif
clk_mpll.rate = fclk;
clk_h.rate = hclk;
clk_p.rate = pclk;
clk_f.rate = fclk;

/* assume uart clocks are correctly setup */

/* register our clocks */

if (s3c24xx_register_clock(&clk_xtal) < 0)
printk(KERN_ERR "failed to register master xtal\n");

if (s3c24xx_register_clock(&clk_mpll) < 0)
printk(KERN_ERR "failed to register mpll clock\n");

if (s3c24xx_register_clock(&clk_upll) < 0)
printk(KERN_ERR "failed to register upll clock\n");

if (s3c24xx_register_clock(&clk_f) < 0)
printk(KERN_ERR "failed to register cpu fclk\n");

if (s3c24xx_register_clock(&clk_h) < 0)
printk(KERN_ERR "failed to register cpu hclk\n");

if (s3c24xx_register_clock(&clk_p) < 0)
printk(KERN_ERR "failed to register cpu pclk\n");

return 0;
}

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.