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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 k7 a7 H; A4 K0 p2 ]9 y
#include <linux/init.h>
' U# n& T% G; O# c2 B5 Y" a, H2 e) f#include <linux/module.h>
& _+ ?1 L# q8 o( a5 y- L#include <linux/kernel.h>
% }5 w3 _! j3 z6 P* p8 n6 o! {#include <linux/types.h>
, D9 g* `8 L% |) n  m7 m% M#include <linux/gpio.h>
, t  x0 Y! m8 N+ E#include <linux/leds.h># b3 ]. X! j& U; y$ E! V! @
#include <linux/platform_device.h>
3 B5 ^3 \; x6 d4 y
% T( ~# [% d, k) m#include <asm/mach-types.h>& W, C5 B- i2 C$ \2 u: D0 H" N# O& O
#include <asm/mach/arch.h>
6 Y- X% _8 R0 K. ~. ^* ^( N! G#include <mach/da8xx.h>
$ ?' d2 Q3 U% B% q. H+ K#include <mach/mux.h>
! \7 {5 M  A/ i
3 |9 W7 B( Y! W& y, Q: x+ N- u( s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 F- o; S+ }+ F5 f9 N7 j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, ?3 w: ^, e* p: R! c  E8 a5 O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) C+ l6 G4 N; k3 P& O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" y" b; z$ X; Y- |" r
3 x7 t- w6 F% H! R+ o/* assign the tl som board LED-GPIOs*/
+ d7 o8 g& w* l* Y$ {+ W' m4 Dstatic const short da850_evm_tl_user_led_pins[] = {0 a/ H) |" Y( [, x# s
        /* These pins are definition at <mach/mux.h> file */
% `8 m* w3 B1 Y6 `* B! {9 i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  n- p( N7 W+ G* |5 P. R9 Y! N        -1
: X4 @6 R  A; p1 ~5 Y+ Q' x};% t9 B# e; S1 ]$ z0 ]

4 {4 T, M0 u( kstatic struct gpio_led da850_evm_tl_leds[] = {
: E* ]) g1 W1 x. `5 d+ h  s2 n" n( e        {
2 |6 z4 g6 ^1 G, E1 `! X                .active_low = 0,- t; g0 |5 N0 x! F) e) C( M0 l2 `
                .gpio = DA850_USER_LED0,
2 t3 h7 O9 r: e" T& @8 [                .name = "user_led0",
8 _8 j- J' T3 B0 b2 F                .default_trigger = "default-on",# ^0 g$ C: t* o, i+ i4 g
        },
- }$ q, o& R% p+ [) ?& o, Q0 @# {        {
! s+ X$ p0 i4 E2 u$ _                .active_low = 0,
" x8 x" p& V% ^5 [) B                .gpio = DA850_USER_LED1,
% ?/ d$ {1 B' p5 m                .name = "user_led1",8 R9 i( ]- `5 w( C) I8 H: B
                .default_trigger = "default-on",8 n7 _) e! P  H0 |
        },. d2 |' h# r. B/ ]8 D6 U( h- U
        {
( d: M6 b/ |5 A( [                .active_low = 0,
& |. x" j8 |/ t' {7 E& x                .gpio = DA850_USER_LED2,) I; N7 i3 ?' }$ g
                .name = "user_led2",
. W2 s+ [* r/ t4 q; j                .default_trigger = "default-on",* _! F0 ]6 |6 R9 V  U* W
        },
% t& V) a% K* G) G; _7 M  h: L        {4 L! d' ?1 [) A) h! o( J' N
                .active_low = 0,( G, y5 M7 D/ B* ^) I/ R) i; K
                .gpio = DA850_USER_LED3,
8 E5 {4 b- y$ s0 p- H                .name = "user_led3",! ?7 {8 q% u6 o3 e( ^8 R* ?
                .default_trigger = "default-on",
7 {! s7 K! P  z$ Y        },; h6 v. u! i0 i) G2 @
};
% y* n+ F2 i6 B- V! Q; q
* ^8 O6 a7 l: G7 Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 F% o. E6 G2 y9 R        .leds = da850_evm_tl_leds,
, e, M+ f% M+ t: H, A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ R6 h0 i) k0 _; U/ [};% l. s0 ~4 a% q) V0 Y3 j: \' o

( ?/ i: s+ C. sstatic void led_dev_release(struct device *dev)4 ?6 y% n  M( ^; p
{
. J( ]% P$ Z6 i9 a2 u& Y" U* P};
1 k; W) R$ x! m! e3 T0 B
* L& {* x* C6 U' A9 m0 istatic struct platform_device da850_evm_tl_leds_device = {
* ^/ M8 [4 s* y        .name                = "leds-gpio",
3 T9 E, c5 H( D        .id                = 1,
' y0 C$ H9 V, \. A9 n$ G        .dev = {
6 v! U  d' {6 F4 d& z/ M                .platform_data = &da850_evm_tl_leds_pdata,# D' D* T3 H9 P% x* X
                .release = led_dev_release,0 z3 o/ X2 k3 ~. [  Q1 s
        }9 H, Z% A* X$ f
};
& D7 ~' ]( M; B6 f2 L- U- F, Z8 p: ]! l5 R
static int __init led_platform_init(void)
/ h2 `6 {3 e0 x; p. ^{& C/ ~, c# Q4 p  U: X2 J5 f+ O
        int ret;0 O. w5 v5 _& q7 R8 D2 q8 k* s
#if 0
- ~  J( G; F4 }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: ~( I% D, J' e. n6 H        if (ret)0 N' ^- Z; I$ Q/ L2 z' M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 C& s- H  H8 h( S7 C2 k) C$ c* \7 \                                "%d\n", ret);
! X6 l& U+ s; ]#endif' l9 a" V+ _+ n% v
        ret = platform_device_register(&da850_evm_tl_leds_device);# e* y5 s2 k) x9 Y
        if (ret)2 n4 k9 o5 y$ C* o! Q6 p( c1 C
                pr_warning("Could not register som GPIO expander LEDS");& B! q( r3 C, C, y! f1 n, B' L7 f
        else3 Y* H4 }9 c$ L/ W% U. c
                printk(KERN_INFO "LED register sucessful!\n");0 O0 C+ w: D7 U* s0 x
6 o1 V3 F% J; `( Q3 q
        return ret;5 x# M8 `8 ?$ T/ E
}
' A) L( o4 i2 Z" l5 t* @9 s) T; _/ \8 g; ]! R
static void __exit led_platform_exit(void)
+ M; b0 O' ~- n! z. K  m* W{
; T: [; [& m" p/ }% N7 V        platform_device_unregister(&da850_evm_tl_leds_device);. d, r; @, W% Z" s1 y

8 E& V0 @! b( X- J' ]: c1 D        printk(KERN_INFO "LED unregister!\n");
  h! x0 P: q; D}8 F8 P3 U' i  B& C) P) P8 Q
% O+ G, J# r3 L
module_init(led_platform_init);
( K4 v3 B: X" zmodule_exit(led_platform_exit);! Q9 ~. H$ [" [9 J. ~
8 {& p+ O+ ~$ b  Z
MODULE_DESCRIPTION("Led platform driver");: z( o0 q7 w! o, h
MODULE_AUTHOR("Tronlong");
, a( F2 @9 v9 u- ^3 P  CMODULE_LICENSE("GPL");) y& b; n2 R( u, ~
1 I/ P# ?: u) E9 [. p' `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 17:28 , Processed in 0.038226 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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