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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" w% o3 }7 d' i8 `#include <linux/init.h>
7 {1 [8 o) G' t2 ~& A' H2 u6 }# z: M+ N#include <linux/module.h>/ ^- x/ u5 D$ k# H2 L: B# Z( z
#include <linux/kernel.h>/ b3 O+ Q$ p' G
#include <linux/types.h>
- l( i5 ^( [. |5 W3 B" V4 |1 F#include <linux/gpio.h>! I& U; b7 M8 R- k
#include <linux/leds.h>
9 L. z9 T. d* t8 O# E* e, x! v#include <linux/platform_device.h>
8 j6 m2 Y5 V4 P! P# S8 ^+ @+ i
6 x3 b0 V( g/ p! H- e( |#include <asm/mach-types.h>! \  u% J6 {+ }/ y! `' \
#include <asm/mach/arch.h>( L6 M# b. }$ o9 w: Z. d9 V1 h
#include <mach/da8xx.h>
% U9 T' W/ e9 G; A6 o% Q& l#include <mach/mux.h>: r; E$ E7 f8 H8 [
5 z) v8 o. q( t4 _8 r# U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# e  ?" B2 g' D% V6 }1 e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# \/ @/ Q+ ~! C' Y9 l  {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- ~* L) C$ ?2 g0 X  U
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" U2 M) G' Y1 Z& d; `% x) n$ B
3 ^$ H- `: x2 }5 E& _/* assign the tl som board LED-GPIOs*/# `; g; i1 a# b* ~) H
static const short da850_evm_tl_user_led_pins[] = {
- O) Y' |2 X" W        /* These pins are definition at <mach/mux.h> file */
0 k( h9 G' |/ u* e        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ h/ v" Y; n1 {/ O  t( g
        -1
  M7 A2 V* ^( r};
# K! K2 X$ k# o9 |0 N9 b, {% j9 C% K9 ?; y
static struct gpio_led da850_evm_tl_leds[] = {
# g( g& Y. D' P: v% s/ h        {7 k& l# c0 t; j6 s0 K, F
                .active_low = 0,
/ a9 c# |1 c! r4 |2 R                .gpio = DA850_USER_LED0,. o$ a% C' Y2 i  ?5 C4 ~; V
                .name = "user_led0",
, d! d" y1 C& d2 q                .default_trigger = "default-on",. Y; ^: \; n$ l+ i
        },. d, }" l. d: S, G$ u) K
        {
. i% t3 U* L# p6 z0 |7 C0 ?                .active_low = 0,
0 b5 P& {2 M9 S1 E% Z                .gpio = DA850_USER_LED1,% j: m# D& O% E1 P2 i
                .name = "user_led1",
" y5 M8 o5 K* x' l" \3 o% [4 V' X" U" D                .default_trigger = "default-on",3 Q4 z( ^/ l+ a% M# i8 y7 l
        },
$ h( D+ f- f7 C% r& n9 M        {
$ ~* U( m5 O( e" V. m1 u1 |+ u# Z                .active_low = 0,, G* S: Q  l/ b3 h+ S2 W
                .gpio = DA850_USER_LED2,
, ^9 P4 M, A; W* W! w) T6 `                .name = "user_led2",- O  P, H1 K, V
                .default_trigger = "default-on",
) D% ~) A7 J, g- h        },
: V2 S8 x; z  ^, ~  L  V        {: D' k8 O, r: d8 O/ A# A: ^0 v
                .active_low = 0,
% F+ c4 [/ Q$ k4 O$ n                .gpio = DA850_USER_LED3,( D/ x% X( Z+ }
                .name = "user_led3",) a* N  |- |7 `% U. b, T. G
                .default_trigger = "default-on",$ W( M3 K4 t3 G( U4 x
        },  v- x; S# |9 [6 a
};
' b) n/ b0 L/ }! [1 l$ b& C- V' k5 x( a$ s, R9 B
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 A! g6 S! d8 C% `5 e3 {( p        .leds = da850_evm_tl_leds,+ w8 i, u9 y3 G! y' g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 R; ^5 m$ C3 x6 `2 }' m};5 t# k* Z9 j! I. U5 J) @! p
5 l( ?: d$ t% {% {0 F5 u
static void led_dev_release(struct device *dev)$ ~, s, K8 X7 q* _
{% {  c- E) |/ Q. q8 b
};! g: u" c& P0 B& e* B
+ }% m) U5 F( e/ h$ a' `8 s
static struct platform_device da850_evm_tl_leds_device = {
  K7 K6 @% Y6 Z        .name                = "leds-gpio",
; S' T+ O5 d9 z: b# Q        .id                = 1,) ?" p$ @, R/ ?# G5 U/ T9 `
        .dev = {6 ~, m2 [: @+ a
                .platform_data = &da850_evm_tl_leds_pdata,( }' U* ?  Y3 \( [( `0 \1 {. u
                .release = led_dev_release,) H" [( Z; k) E9 r* X
        }
8 |/ `% r/ O( t! o4 P, c};+ l: X7 r4 G2 v5 w

5 K" m) v( B' B, a4 pstatic int __init led_platform_init(void)* G! P3 c8 L" _+ E; h8 s6 l" e: m
{0 U/ k/ W( _. U$ Q! |' B
        int ret;9 D' P" t9 b; g2 L2 a0 C" Y
#if 0
+ x& ~2 Y8 W/ m7 t$ }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 l$ s( l1 K( {; T
        if (ret)+ r; N* \/ x# w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: h1 T9 _: p+ `: R* b' f  H                                "%d\n", ret);/ S- f  z, d' q! N) S( I# U
#endif4 h8 L: S8 p$ V9 q9 p/ W3 v0 y
        ret = platform_device_register(&da850_evm_tl_leds_device);4 M! Z7 M% E5 X) N. v+ Y9 d
        if (ret)% n: c* b! V( u: H- j& r! x
                pr_warning("Could not register som GPIO expander LEDS");5 w+ Z- |( o5 o7 |: s  _
        else
' ?; A" N% j9 Q4 h: u! u& x$ f0 b                printk(KERN_INFO "LED register sucessful!\n");
  q) R; n3 r, y: X7 U1 H9 p+ L4 T) n9 }, o$ ?' {
        return ret;( E9 y3 e5 h, [1 n
}
- i: u; g6 z: M9 _/ y  p8 ^6 V0 l) F# J" N
static void __exit led_platform_exit(void)
) x) h8 H8 p! e3 P0 R% @( @% _{# E! b8 c) w" ?! n
        platform_device_unregister(&da850_evm_tl_leds_device);1 z. @1 g: |; X0 N0 `. F! I

5 L% C9 z% q; x- ?2 n! `$ H        printk(KERN_INFO "LED unregister!\n");
6 P3 y( m1 f* v8 I7 o3 L}4 U7 C. C% `6 z/ P, m
7 _( E7 x0 [2 N$ i9 x& [3 W' B
module_init(led_platform_init);  x# U1 A. E; x
module_exit(led_platform_exit);: `- A6 a: B6 B4 Y! L
$ x( f, T! \; e( U, [
MODULE_DESCRIPTION("Led platform driver");
4 e  L" i9 ?+ i1 o4 vMODULE_AUTHOR("Tronlong");
/ @! {1 }5 u4 |' x4 q# ZMODULE_LICENSE("GPL");
- ~2 r4 u" c/ r6 K& C: a# T2 \6 w9 e$ K8 p/ L* S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 00:25 , Processed in 0.040123 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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