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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* ?) ~- a+ ~# z+ ?" b) f5 q  ]2 e#include <linux/init.h>
4 Y" Z/ b5 B/ C- E* r7 |3 K4 E8 L  q4 h#include <linux/module.h>2 ~8 F, e1 A) G" X
#include <linux/kernel.h>
8 i. D, r5 Q1 z  @6 I#include <linux/types.h>
* o6 ~9 k8 d: U6 i; _  e#include <linux/gpio.h>/ G1 Z" L7 u& E# N
#include <linux/leds.h>9 [9 b6 z( n2 `) y. P/ y
#include <linux/platform_device.h>
! P- e( D1 l5 Z$ P* j9 h6 Y. a  N, V" o5 C
#include <asm/mach-types.h>0 g* c" ~; _: z, |- }# x+ }
#include <asm/mach/arch.h>) c; S* l" k9 p) W" \( A. A
#include <mach/da8xx.h>- A! J! x/ N) @2 S% F5 ^
#include <mach/mux.h>& c" `9 w4 Q' [0 n6 W

( _- b: A7 l6 b# ~# x4 z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' k! u- y8 N- r# E- }; C
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- ~5 U7 C0 j' n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 E( c+ Q/ ]. V6 c8 x#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 [/ \* t& s  j5 U5 j. o" B' S; N: j1 L  L) a' d% W, \
/* assign the tl som board LED-GPIOs*/
" g, e1 }8 q6 n/ ]7 r( vstatic const short da850_evm_tl_user_led_pins[] = {$ ?- Q  \! P  C2 q! S1 X
        /* These pins are definition at <mach/mux.h> file */  u8 z$ m- C9 y" Y, y6 B! s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- o: t+ u# B  W4 X4 a        -1
2 B" v0 c+ k; G6 b$ s6 Z};# Z* M3 m+ d( H! Z/ P5 o$ e

$ d0 U! [5 T' {. ?: H8 jstatic struct gpio_led da850_evm_tl_leds[] = {
9 ^% o/ r1 |& _- @6 x        {
: q1 ?1 S" t: f0 w. e. ?6 t                .active_low = 0,3 n2 v& E& Y+ K0 D7 C( M1 X4 O
                .gpio = DA850_USER_LED0,3 ~# Y: B' w$ J1 s
                .name = "user_led0",( Y5 k2 g6 u+ [. k
                .default_trigger = "default-on",$ x1 h' `3 W& |& R0 H3 P/ K# V1 J
        },
; e/ |1 \" b2 ?' L- S        {( r) ~, C5 C6 g1 k) e) {
                .active_low = 0,2 X+ q) o! }0 B/ h0 _" E- v
                .gpio = DA850_USER_LED1,
1 f  ~/ q) _  d+ W  D1 d$ [" t- s7 Q                .name = "user_led1",5 l2 V4 b, {( J9 V4 p& ?  |
                .default_trigger = "default-on",
) F: b4 m9 k  i% s% t) O# P        },  h& z' {1 N  L
        {
2 k; ]9 ^! v% r  r; X+ E! c6 W                .active_low = 0,+ q8 f+ ]2 {2 g8 y" p
                .gpio = DA850_USER_LED2,
. i9 N0 p, K! L1 Q8 O, A- ?                .name = "user_led2",5 G7 {" L/ T" }7 K9 I" @
                .default_trigger = "default-on",
1 H( a7 t. ^' g+ y* W        },
" T* n) O0 l; i2 Y; |        {
9 ]( P+ @' G1 J4 r$ T                .active_low = 0,3 W1 D  G8 o6 q( U# l( H
                .gpio = DA850_USER_LED3,, q' D! `; O& g
                .name = "user_led3",5 K: ^# ~' B, u1 o, _" E9 B+ s; [
                .default_trigger = "default-on",
( r! R6 e$ T' }' g        },/ I4 ], g# I( G. w# E) C
};9 i4 s8 j1 T/ _+ {8 o. |+ e( u

9 u0 [( S& ^. xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* @- |, X  W6 ?/ ^2 I        .leds = da850_evm_tl_leds,
& H* p! S5 u6 M6 K$ Y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 M- M6 X; f% e; ~+ ~' b3 m9 n};- I. G6 ?- ?2 j
( F6 z+ o! `0 u  J. Z: a; s
static void led_dev_release(struct device *dev)1 b- }. l) P7 C* P
{5 q) z2 C$ Y" O
};
* B+ p* P& p: c0 g8 }3 c; B0 Q2 I3 n. P; ~9 N8 o- ?
static struct platform_device da850_evm_tl_leds_device = {
. N. v9 k3 {: I# P0 ?) F        .name                = "leds-gpio",. r$ Z$ r: Z0 \5 J/ u( c/ G
        .id                = 1,
( z; d: P$ ^( T* U1 H& e) i        .dev = {4 Z+ O. L! A. }4 Y( U! P9 e# X, b9 k
                .platform_data = &da850_evm_tl_leds_pdata,
1 e0 ^0 P! d9 E6 }- T                .release = led_dev_release,
( q0 d3 B: M) `$ X' p# v" E- q        }
; W' t" N- }4 Y, ?$ S. C/ @. [; m};" s2 l* C% @# H- c& {6 [
" @3 n; E# \: J  h/ S
static int __init led_platform_init(void)( _3 ~- t: A/ K0 d' z
{
: V) B2 ~" p2 n- D0 Y" N        int ret;
) n0 I; u; j& a: s#if 06 ]2 \) H  y' ?3 y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 ~$ ]$ u" |0 G# @0 F6 }  Z+ _2 ^        if (ret)9 |; V' a: @" q$ D! T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 ^6 V6 a+ a. F1 w; H
                                "%d\n", ret);
* x6 k) h$ i5 m0 P#endif/ I  ~) \# k& D) f
        ret = platform_device_register(&da850_evm_tl_leds_device);
) h8 A4 d7 o  N' J! x        if (ret)
" D- L& c- {' Y* y+ ]) A0 K1 i, G                pr_warning("Could not register som GPIO expander LEDS");1 y+ m% h  d5 Q9 t& ~
        else5 O% n8 b8 w3 F: }
                printk(KERN_INFO "LED register sucessful!\n");
) D0 j. m8 E9 t, i8 Q* ^; W) n
% s8 n6 Y; N0 E' u* u        return ret;9 Q- ?; B6 p2 _. I9 a6 F
}
0 Z; I) B' b) D8 ]& d9 d3 u: ^6 c* }' g1 _) E1 H
static void __exit led_platform_exit(void)
. _# i& Z: d/ ]1 n1 C$ m# D# W{2 }) S1 f6 h. c6 i- z
        platform_device_unregister(&da850_evm_tl_leds_device);
! ^3 ]: L& c2 I* P4 m
  V  X8 y  N* x% `6 }4 \3 R6 i2 E8 I        printk(KERN_INFO "LED unregister!\n");
! k  i0 k, z$ T+ q4 w; w! z}
( J- J( o1 G& X. ]# ], F7 v
% s( _3 y% w9 Imodule_init(led_platform_init);
: u  ?- e# A. `! S1 Cmodule_exit(led_platform_exit);' z) v4 ]! ^6 d7 E, e6 n( P

( h# M& V4 @  n; v1 J; M1 k- _$ G+ PMODULE_DESCRIPTION("Led platform driver");/ b/ O* K3 s. O
MODULE_AUTHOR("Tronlong");. a0 r  A; \$ S
MODULE_LICENSE("GPL");$ L3 T2 G6 f* x" F8 `
0 Q( ]/ G$ n6 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-15 21:50 , Processed in 0.041094 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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