程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9613|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; B6 ?7 J! q1 s5 N9 _& G8 x) p4 ]! u! Q
#include <linux/init.h>5 v, C* f$ A3 ^' f
#include <linux/module.h>& [2 L/ Q. V: u. K( y( N
#include <linux/kernel.h>1 V) p. ^1 X) A
#include <linux/types.h>
1 K# w- }3 s/ y* M6 T#include <linux/gpio.h>
& \& L. R  s# t! [# y' i" {#include <linux/leds.h>
1 s5 d! f( B. [/ D# `; [0 ]#include <linux/platform_device.h>5 W6 n5 ^  n0 }6 o5 d0 n

. H3 Z# y, R# i- J, ~#include <asm/mach-types.h>
0 d- h9 `7 D& ^  P#include <asm/mach/arch.h>
4 y, n$ K6 r2 P8 j* c#include <mach/da8xx.h>9 a7 Q* a# E- z3 K7 [
#include <mach/mux.h>) I/ p$ i  G. o, K2 p

# I3 W- L0 }; z# V/ D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! X& E) f5 S# G( K5 p#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 G8 F! [7 N6 R) s& J( ~9 G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 Z: m: g" u! W/ f& X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 r' h% t6 }% T; M% @
7 R. E' Y% d5 w/* assign the tl som board LED-GPIOs*// U& S- T0 k2 f- M$ H  [. n. O
static const short da850_evm_tl_user_led_pins[] = {; d. c1 a- B' n/ X; x- v: O
        /* These pins are definition at <mach/mux.h> file */
* y9 e7 C* `, b  o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& N, a7 X$ `0 G' e8 u
        -1( e) y" o9 I' U% T( }8 u( {% a
};& Q# o8 a  }' }4 \' L

* ?' q. z5 I: p$ sstatic struct gpio_led da850_evm_tl_leds[] = {4 N) r3 @) L* S/ k# Y- u( [
        {5 I; ?7 c! h6 M1 u
                .active_low = 0,1 Q; e! h) Q# Z- W& H( F
                .gpio = DA850_USER_LED0,4 P+ M  B" _( k% s, G
                .name = "user_led0",
0 k) a7 o/ }% L5 \                .default_trigger = "default-on",
/ s# C0 R# @- v% o% U6 N        },
; |, l; U0 P  e        {3 V8 y6 r7 U( ?1 b% B
                .active_low = 0,4 ]; |; E& [& o2 j0 d1 ^4 x/ J  ]% l
                .gpio = DA850_USER_LED1,9 v4 J1 X, R; m: k. ?$ T
                .name = "user_led1",
: {- F) `4 M0 u. y1 f6 ]                .default_trigger = "default-on",4 W6 z2 L$ k4 O" K) X. o9 h8 \  L% H
        },
1 n/ T0 }3 A2 n2 X$ [        {! _! F& H% q4 o5 v! f* f3 H  T
                .active_low = 0,
- H  E9 c- j9 t5 z                .gpio = DA850_USER_LED2,% N" r5 U- p2 S3 X- M
                .name = "user_led2",5 M5 E7 f( ~5 r* G
                .default_trigger = "default-on",) F2 P: I% W$ v2 ~3 J- {. r
        }," V; U" _3 @' C  r+ V. l: l
        {  q8 Z$ P( M/ A% W; n
                .active_low = 0,; o5 h9 [8 l  C* @2 Z0 V/ w; l
                .gpio = DA850_USER_LED3,
: t9 Z$ a, [% a- J8 U$ t                .name = "user_led3",
4 E2 @/ i6 q& w+ c2 \" s                .default_trigger = "default-on",( h1 C/ A; r! h3 u4 t2 L
        },0 b* ~8 A! s1 l& z* R9 S
};- c: F2 [' a  Z/ z! b( }
4 r9 m* T: c: e5 i! d9 n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 \$ c! t* T3 F$ G. }3 l+ Y6 ^        .leds = da850_evm_tl_leds,- J/ f; N% ?: o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ O( U$ C* R6 V) r5 z7 {. v6 \% F};) ]5 s" F1 D, y# z. p8 w0 s+ E  m
/ C9 T4 ~) W3 g# ~7 F
static void led_dev_release(struct device *dev)
, K: J+ |6 {0 K: x, I/ b{1 Q& {! l, V0 s7 s5 t
};
0 K& ^1 g% Y8 g9 V6 x7 T- {) [- v5 V% J3 i9 x; ]8 |2 u5 o+ B$ i8 [+ ]* e% k. ^
static struct platform_device da850_evm_tl_leds_device = {
- _8 p) F+ U6 G# d2 V" Q        .name                = "leds-gpio",1 [: J" H$ n  M% T
        .id                = 1,
7 N% B( u' U, B        .dev = {
, f' m" R* }7 b$ t6 @* x1 c                .platform_data = &da850_evm_tl_leds_pdata,
4 ^3 Y' A! r6 j" J/ i7 J7 u) i                .release = led_dev_release,% Z$ ?: @$ z( [$ d
        }
7 y) U* _8 i& a: E};) i+ |1 T& o2 U- R8 e9 W/ L

  o; l  \+ ?0 a! i0 Zstatic int __init led_platform_init(void)7 l! ^& t4 ?% f, R5 B
{9 f! X3 W) k2 C
        int ret;
4 O$ K. @2 A# S! l( L#if 0
, O8 |1 m- {% B7 M( g( m$ g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  l8 y) S: I( X! Y5 Y4 q: Z        if (ret)
7 R* C, A% q( d7 D/ o, z4 M( _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! t, j' m! A, z5 a/ Y0 f+ l                                "%d\n", ret);
2 S" M: o, p5 u#endif* s/ e4 O! `3 B
        ret = platform_device_register(&da850_evm_tl_leds_device);4 h  U. D1 G! w( C
        if (ret)$ ~/ I( w1 c# k0 A
                pr_warning("Could not register som GPIO expander LEDS");
) t3 W2 X) z: d2 \) z# U3 W8 p        else3 W+ }- s( y; Z  O( B! I6 O
                printk(KERN_INFO "LED register sucessful!\n");
; J) G. J: u% X( O1 C4 k/ T( q5 o8 A* p* X, l- e! _
        return ret;. A8 D& Z1 u/ h
}9 B6 X/ K& C  d. V; c
1 _) K! v0 R/ T8 o& l
static void __exit led_platform_exit(void)6 j9 {: l4 X$ j, M
{4 E- l: ~8 Q4 s! J
        platform_device_unregister(&da850_evm_tl_leds_device);
3 l+ f" p+ A5 P6 l( X; H: |8 H9 t- j$ N8 \* p& f/ O0 O
        printk(KERN_INFO "LED unregister!\n");# N9 x1 `' y- R
}) t9 ^+ a! {1 h7 Z4 t

! B' d- a" X7 J+ K0 @" ^module_init(led_platform_init);6 E; H1 n; V* G7 P! e  H
module_exit(led_platform_exit);6 u( M9 d6 I0 v+ k9 j
3 {2 k' f- A( W' L3 B
MODULE_DESCRIPTION("Led platform driver");, T. s+ E6 M, b) I
MODULE_AUTHOR("Tronlong");8 i- L; X2 S* F& @
MODULE_LICENSE("GPL");' ^% M' U/ p* K1 q6 Q
! Q0 |, d" k+ R& a8 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-22 07:21 , Processed in 0.045598 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表