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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. c2 v; T/ h& u: X) ^% }
#include <linux/init.h>
3 p" D  r( o5 P8 N; M% O0 ?#include <linux/module.h>( m, r) z2 C! V+ d4 m
#include <linux/kernel.h># U0 U! _* H$ ~& q+ Y
#include <linux/types.h>. G5 b6 w. S6 t: E8 i0 w
#include <linux/gpio.h>! o5 K2 n8 x6 h8 f5 ~' r
#include <linux/leds.h>
. y0 C% D1 M% L! t! A" C' m#include <linux/platform_device.h>0 G9 M  M( Y5 c8 ?/ x8 x" I1 Z, M

+ C6 ?7 o& _$ c: S; X#include <asm/mach-types.h>! t" V8 x( P' [
#include <asm/mach/arch.h>  N' w; q  w% Y5 e
#include <mach/da8xx.h>; R4 `/ q' K! X; f; G2 ^" p, o
#include <mach/mux.h>/ }. a( e& M& c' B
2 K# ^! l6 e% o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ F2 d: Y. J8 ~1 y' Y6 w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 F7 v4 x# b+ b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 p2 p( o" f3 S+ a+ d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 M9 s1 q* Y4 P& |- q
* z8 t1 m# u  j  J( w2 H
/* assign the tl som board LED-GPIOs*/
+ x5 }5 t7 d/ y, V3 ^& C% Wstatic const short da850_evm_tl_user_led_pins[] = {
5 E4 f' F% f; H! }0 l; o        /* These pins are definition at <mach/mux.h> file */
8 ?1 s; o/ {  D) P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: h8 R; W' m8 b* w6 X" d
        -1
- F) Y" p- m6 H; h0 w; D: `0 g};
7 q, v3 j$ m/ u2 G8 d5 S2 L" s. c
static struct gpio_led da850_evm_tl_leds[] = {
. O& `) d% i( S# g: r) h        {3 D' P1 q1 ~/ W* n/ [; W
                .active_low = 0,
0 d1 o& |" o) h! c  b; n8 L1 S. I( ~                .gpio = DA850_USER_LED0,& Y$ ^1 I9 s+ t2 r
                .name = "user_led0",
. `7 K2 i, l- E. b$ Y  e                .default_trigger = "default-on",3 P: V& g' u# |9 \* u
        },
. `1 Z& j& r/ H5 n/ T        {1 d  A2 i! r5 o5 O  H
                .active_low = 0,
& y- g- n4 D% M5 y                .gpio = DA850_USER_LED1,
4 R/ l0 \. ], l$ i! {/ b                .name = "user_led1",
' A" p4 W/ I$ j! Q9 r2 p) i! h                .default_trigger = "default-on",+ L, K7 R. `- V$ V" n6 C
        },$ t. p  O, E; E& }( Y2 p
        {
  V5 }( W  A% m* g                .active_low = 0,
1 V* o1 G6 |% n; t                .gpio = DA850_USER_LED2,
* Y8 k0 l& z( d( W: k! W( T4 w                .name = "user_led2",
! C4 {8 j, g: h, Y- _+ l7 ?                .default_trigger = "default-on",- a  ?4 Z" m8 m
        },/ [; Y2 [' B3 O7 [0 o
        {
: o8 _  o& o' Z; b9 V  f0 z, X                .active_low = 0,0 y# }8 f4 {, O& q7 c+ q
                .gpio = DA850_USER_LED3,
. i" j3 x3 m8 \% ]                .name = "user_led3",+ \' U8 [) q! D$ d! `$ [  z
                .default_trigger = "default-on",7 n& Y" U( ^% ?3 ?
        },
9 _: P# j# o5 O) M7 I+ _4 M4 K7 ?% l};' w: F5 \8 b# P4 }* m

. u3 x# i: v# d+ t& W7 g# D( j& estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  g8 P4 b5 E# ~7 a" j3 t        .leds = da850_evm_tl_leds,
/ Y8 k: p# L, V! n2 s2 `3 o# ^, h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' ~6 j: c) A7 m3 y' I; m0 G3 o};( l) m8 p# E* v# P- a& P
2 v: D$ _. W% x/ {- {
static void led_dev_release(struct device *dev)
( i0 t7 a$ X4 U4 u{
% w- j4 d6 c$ _) B, l};
9 y2 w! U3 o# ~( u; q& _
1 {! P  m; p! N' D0 Y2 ~static struct platform_device da850_evm_tl_leds_device = {; p5 b+ G" b* q, u: l; q8 ^- d* [
        .name                = "leds-gpio",
" Q/ B8 I/ z0 d% l& s. V& C        .id                = 1,
0 m! ^# t4 h/ K8 \        .dev = {* K0 b# l3 j, O. Z3 d! i5 g% ~# D$ h- Z
                .platform_data = &da850_evm_tl_leds_pdata,5 m# Q! ?6 p6 _2 c
                .release = led_dev_release,
# X7 C2 x* m& l. @0 R        }
) ?' B8 p4 V' o1 ~; ~2 v# n};
% H9 u! Y6 s4 ?; J4 c7 F. `" z8 ~; B. \: n% u' [* {8 p5 ^4 P$ j
static int __init led_platform_init(void)" O6 d! c# @; c" d1 w2 l8 _% ~7 p
{/ s: z) o4 q7 B# P  I
        int ret;$ w' a! F/ s, E9 o
#if 0
9 g3 N$ S0 P$ k" O# |& {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! C/ q, M! U; L3 O3 D. u2 T        if (ret)- R( W0 }  O/ S8 c6 \, a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 N" z: k, h- ^9 ~
                                "%d\n", ret);; X3 u" r/ Y5 k4 M1 k* y
#endif1 \' d0 T% k" J. X* o
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 O6 ]  S7 Z5 }4 e1 l        if (ret)
1 k+ l& m8 a1 V6 }                pr_warning("Could not register som GPIO expander LEDS");
/ ^0 N; ~+ Y2 G/ u7 h7 ]+ T        else# r7 |: b; h+ Y
                printk(KERN_INFO "LED register sucessful!\n");8 V3 T* Q9 |' z; n. x

. y# x5 E% S) L        return ret;
5 q+ n2 D% q) l}7 A4 O1 @0 O8 M- c
) H' ~) k+ d) p0 G" Z8 I  U
static void __exit led_platform_exit(void)
/ u2 \/ c+ M$ B( E" x0 |{
; z% F* P2 I* w) P) w        platform_device_unregister(&da850_evm_tl_leds_device);0 y0 A: Q) {! z( k/ e

' h4 ~  A: @; P- L% d        printk(KERN_INFO "LED unregister!\n");
# }6 F% ~6 Y! }}
, b; R5 h. F; R2 O5 d. ~1 i1 _0 W) Q) e( N6 ]
module_init(led_platform_init);! G& k* m' K- e* H. S
module_exit(led_platform_exit);/ T- b. c' S" k4 C( D) |
9 }' `6 ]4 }" `! D
MODULE_DESCRIPTION("Led platform driver");
' v9 _  d5 ~( T& |MODULE_AUTHOR("Tronlong");/ @& g. b- |1 x# V
MODULE_LICENSE("GPL");/ v( D+ y: }: W1 R4 I% r

9 P4 {3 T/ ~* V  N+ j; c" ]' q* k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 18:34 , Processed in 0.041187 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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