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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 @; b9 t4 `6 T( W* m6 s2 G) H
#include <linux/init.h># Y2 a( E5 C: G+ _( w( C! R+ ^1 G, f
#include <linux/module.h>1 o9 v7 U( _; I/ w4 Y2 U
#include <linux/kernel.h># X; O4 G: q& i( l. c6 o+ k% {
#include <linux/types.h>
0 L- ^/ r, Y( O( x" ?5 t9 B. P/ r#include <linux/gpio.h>- G/ U" S; t. ?' s0 p
#include <linux/leds.h>
- p# d& s4 q9 a. F8 |6 ~#include <linux/platform_device.h>
0 Y  v7 H# s. r, t" d* a9 q* N; z" b- a8 |5 T; W5 d% l% [
#include <asm/mach-types.h>
2 T! F- I0 B3 ^! N. Z& @+ B' o#include <asm/mach/arch.h>
3 K8 X  }0 M& x7 s: C( w7 M#include <mach/da8xx.h>
1 e/ u' m- I7 [+ r  \# i#include <mach/mux.h>& z! D' A3 L3 o9 p
9 f- r! a" x* G% `+ C: N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ W+ V! o* K( ?3 d# L
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& n2 L! {& u; B* z! N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  V1 g2 ^; q$ r' K+ Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 Q7 g$ h9 K- G( g! U5 e0 N7 k

7 c$ ~9 x* `0 X' F2 A/* assign the tl som board LED-GPIOs*/- T+ u8 u+ X8 D% X: ~. @# f
static const short da850_evm_tl_user_led_pins[] = {
/ A8 ~) n9 M$ A% f6 B! a! E        /* These pins are definition at <mach/mux.h> file */# ]+ B) ~: @, Y+ K8 |/ X$ _, p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: ]' v9 P8 c% d        -1
9 E! X# D+ q  ~5 ]" i};
5 @5 ^0 o* k' e: \5 M2 @
5 W8 r1 l8 _; k% i1 [) g# d, _2 ^static struct gpio_led da850_evm_tl_leds[] = {8 B$ M8 j, d, v/ f
        {1 ~" y. c& E, O' W! C8 S; C) s; Q
                .active_low = 0,
; F* m  C2 n* U                .gpio = DA850_USER_LED0,
+ w* w7 V) {2 w, Q% C1 P                .name = "user_led0",+ ~2 M- B5 m- a3 ]$ a
                .default_trigger = "default-on",
/ E* O: d( H7 y" ^0 D        },( _8 v: _( x& L' b( f
        {8 m6 R+ E% ]% m. z4 q/ ^
                .active_low = 0,
( n5 h8 I  F2 q+ _  ]2 I                .gpio = DA850_USER_LED1,
& N! d* o; `* z0 r) @. O- Z                .name = "user_led1",6 y5 x, G* G6 v2 c- H, X0 V& D
                .default_trigger = "default-on",
' |% o0 J4 ]5 r- J$ b        },
, F1 U$ \/ c- e$ \  V: W' x0 {        {; k: J4 Z5 k5 ]$ R6 Z
                .active_low = 0,, M: a/ k/ V' y5 K" v) ^0 [: e7 r
                .gpio = DA850_USER_LED2,
) \) y9 M) @& }) v- k                .name = "user_led2",* f8 p7 z7 a+ }" t' {
                .default_trigger = "default-on",0 s! O  B% u% |" x( V* V3 r
        },
" a; I0 g* K& e        {) r; T3 V% U1 L7 x& g. H# V: _
                .active_low = 0,9 P& G& l5 b1 {3 `
                .gpio = DA850_USER_LED3,
, H. h/ Z5 b- @7 O! t( @2 m                .name = "user_led3",
6 V$ V( |, ^6 l  E2 i; k                .default_trigger = "default-on",' T9 ]! v6 J' m2 L, c0 G8 e, L
        },
/ a/ W; D6 w! S! m6 X; \};4 N4 L2 X; a) m3 @
4 f+ x2 O) D% a" g# M  H0 `4 H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 K$ X, F7 E) t, N" Q        .leds = da850_evm_tl_leds,
( @5 r3 Y; G: l# D' h* \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: ?, ?1 z4 |" J" Q6 r' k* c. D8 z9 v};
2 v3 Y  [; c1 j: [
4 _7 M& J, @& w; k/ istatic void led_dev_release(struct device *dev)5 S' F2 Z# R* [3 m# Y- E
{
$ R& v2 r7 l6 M};' U# O8 A7 M( t8 v' i2 V8 T

* r0 E/ L- J# }0 }+ c! B1 rstatic struct platform_device da850_evm_tl_leds_device = {
& Y, a7 D4 k  G1 L( E! X1 J; ?        .name                = "leds-gpio",! f& n% Q; }4 g# ^) J
        .id                = 1,
, t5 C+ x9 P& q, g        .dev = {3 X3 x+ g% D% b  g
                .platform_data = &da850_evm_tl_leds_pdata,
* h; G, K- \) n8 V" V* [                .release = led_dev_release,
& s2 L/ d5 R/ q1 Z5 b2 b" T        }& k. F  s; B1 o6 j2 e
};
- K4 z. b+ n$ G
5 t0 N& `2 f6 Pstatic int __init led_platform_init(void). A3 o; G$ ?9 d0 J5 I& ]5 p, [: l
{+ r3 `* s2 t8 q6 X. J& d( F
        int ret;. i# e; X2 |: ~) r! e- n$ v
#if 0
1 u; D/ {% ~* Z) N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ Q. ?5 i- u5 R8 b        if (ret)
5 K- @4 d9 Y! A0 Z- J; W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% Z8 N8 e$ @8 _$ F  k9 {
                                "%d\n", ret);7 n7 T! u! h+ H1 Z8 C" s
#endif& p& P. l' t! K6 o$ E' _9 ]
        ret = platform_device_register(&da850_evm_tl_leds_device);# z0 q& q) x1 T5 {
        if (ret)
8 X2 G2 P# b& s  P7 P3 ?                pr_warning("Could not register som GPIO expander LEDS");
+ K" {  f9 L5 B0 v        else: V- s( k" G9 W$ B* h- A
                printk(KERN_INFO "LED register sucessful!\n");2 Y: ^* t. l+ R  d! f, Q. ?

$ o3 D! |+ b3 V; I& W+ ^        return ret;
& S6 G# r3 I7 p& m1 ]% g& r}2 o$ u- J# J+ n4 B8 D9 q, {; e
7 J+ N+ j' k4 n1 l
static void __exit led_platform_exit(void)
; P- _/ J  e2 {1 D- k1 Z6 q{% A8 f) @/ s$ F
        platform_device_unregister(&da850_evm_tl_leds_device);
0 p- z  o% R' ^3 T
# e; k! U$ d6 l9 J2 n& T/ T        printk(KERN_INFO "LED unregister!\n");
, n: \3 S* t& ^4 v}1 U  U% C3 D2 ]+ T% \
2 t- Q; i# M4 G8 ?$ v# h9 n
module_init(led_platform_init);  I/ O! C; ?! u6 W. z
module_exit(led_platform_exit);
3 x1 y' ]3 W: U( g7 I/ s! I* _. a2 s# _, J* {
MODULE_DESCRIPTION("Led platform driver");
! a4 d1 F4 n3 Y7 D* d4 IMODULE_AUTHOR("Tronlong");
3 z, r. H( W' r; `4 zMODULE_LICENSE("GPL");
6 x* ~2 q4 J; U. L" x5 A/ i; o  L6 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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